去哪儿面试题- 一组描述由人组成的网络的测试用例校验是否联通
输入:
包含一组描述由人组成的网络的测试用例。测试用例的第一行是两个整数
P(2<= P <=50)和R(R>= 1),分别表示网络中包含的人数和网络中的关系数。接
下来输入R对关系,每对关系由两个字符串组成,表示网络中这对关系所关联
的两个人的名字。在本题中,名字是唯一的,且不包含空白字符。因为一个人
可能与多个人有关系,所以同一个名字可能在一个测试用例中出现若干次。
输出:
对于测试用例,输入测试用例的编号和最大隔离度。如果该网络是不联通的
则输出“DISCONNECTED"
样例输入:
4 4
ChuQiao YuwenYue YanXun YuanChun YanXun YuwenYue YuwenYue YuanChun
样例输出:
2
#coding:utf-8 P,R = 0,0 P, R = raw_input('').strip().split(' ') P = int(P) R = int(R) while P<2 or P>50 or R < 1: print('2<=P<= 50, R>=1') P, R = raw_input('').strip().split('') name_list = raw_input('').split(' ') #num_list = [0,2,4,6...] num_list = [x for x in range(len(name_list)) if x%2 == 0] name_set_list = [] #重新定义一个name_set_list 格式为['name1name2','name2name1','name3name4','name4name3'....] for i in num_list: name_set_list.append(name_list[i] + name_list[i+1]) name_set_list.append(name_list[i+1] + name_list[i]) #set 去重,看有几个是重复的 name_set = set(name_set_list) count = len(name_set_list) - len(name_set) if count == 0: print 'DISCONNECTED' else: print count