题目
思路:
一种是从参加聚会的人中直接找出符合条件的单身狗
一种是从聚会中删除掉不是单身的人士,剩下的就全是单身的人士了
有学习到在python中
set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等。
而本题正好不存在重复的数据,所以利用set()进行参加party的人数的存储数据类型,更为合适,且查找时间比list更为节约。
代码
couple_num=int(input())
couple=[]
for i in range(couple_num):
couple_1,couple_2=input().split()
couple.append([couple_1,couple_2])
party_num=int(input())
party_=set(input().split()) #set()在查找时候速度优于list()
#可以将派对中的伴侣删掉 不一定只是统计单身的人数 逆向思维一下
for person in couple:
if person[0] in party_ and person[1] in party_:
party_.remove(person[0])
party_.remove(person[1])
single_person=sorted(list(party_))
singel_num=len(single_person)
print(singel_num)
if singel_num!=0:
print((' ').join(i for i in single_person))