舞会上要对男女来宾事先进行配对。编写算法判断两个长度相
舞会上要对男女来宾事先进行配对。编写算法判断两个长度相同的列表lsta和lstb中存放的人名是否正确匹配,设lsta[i]的同伴是lstb[i].判断依据为:若x是y的同伴,则y也是x的同伴。表中4个样例可以参考。

答案
def check_match(lsta, lstb): # 两个列表长度必须一致 if len(lsta) != len(lstb): return False n = len(lsta) for i in range(n): x = lsta[i] y = lstb[i] # 找到y在lsta中的位置j if y not in lsta: return False j = lsta.index(y) # 校验y的搭档必须是x if lstb[j] != x: return False return True # 测试样例3(合法样例) lsta3 = ["Ada", "Alan", "Grace", "John"] lstb3 = ["John", "Grace", "Alan", "Ada"] print(check_match(lsta3, lstb3)) # 输出True # 测试样例1 lsta1 = ["a","b","c","e"] lstb1 = ["b","a","e","f"] print(check_match(lsta1, lstb1)) # 输出False