舞会上要对男女来宾事先进行配对。编写算法判断两个长度相

舞会上要对男女来宾事先进行配对。编写算法判断两个长度相同的列表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

题目信息

题号:8189
题型:简答题
知识点:Python
难度:普通