题目:
You have a list of family ties between father and son. Each element on this list has two elements. The first is the father’s name, the second is the son’s name. All names in the family are unique. Check if the family tree is correct. There are no strangers in the family tree. All connections in the family are natural.
链接:
https://py.checkio.org/en/mission/wrong-family/
代码:
def is_family(tree):
a = tree
a0 = []
a1 = []
c = []
r = True
for i in a:
a0.append(i[0])
a1.append(i[1])
if len(a) > 1:
for j in a:
if j[1] == i[0] and j[0] == i[1]:
r = False
b0 = list(set(a0))
b1 = list(set(a1))
if len(b1) != len(a1): #有人重复当了两个人的儿子
r = False
for i in b0:
if i not in b1:
c.append(i) #找出来数的顶端
if len(c) != 1: #如果树的顶端不只一个,是不对的
r = False
elif c[0] in b1: #如果数的顶端又在数的分支是不对的
r = False
return r