标题:兴趣小组
为丰富同学们的业余文化生活,某高校学生会创办了3个兴趣小组(以下称A组,B组,C组)。
每个小组的学生名单分别在【A.txt】,【B.txt】和【C.txt】中。
每个文件中存储的是学生的学号。
由于工作需要,我们现在想知道:既参加了A组,又参加了B组,但是没有参加C组的同学一共有多少人?
请你统计该数字并通过浏览器提交答案。
注意:答案是一个整数,不要提交任何多余的内容。
笨笨有话说:
哇塞!数字好多啊!一眼望过去就能发现相同的,好像没什么指望。
不过,可以排序啊,要是每个文件都是有序的,那就好多了。
歪歪有话说:
排什么序啊,这么几行数字对计算机不是太轻松了吗?
我看着需求怎么和中学学过的集合很像啊…
算法与数据结构
文件读取+集合运算
Python
def readFile(file) -> set:
tmp = set()
with open(file, 'r') as fp:
for line in fp.readlines():
line = line.strip().split()
for item in line:
tmp.add(int(item.lstrip().rstrip().replace(',', '')))
return tmp
if __name__ == '__main__':
aSet = readFile("A.txt")
bSet = readFile("B.txt")
cSet = readFile("C.txt")
print(len(aSet & bSet - (aSet & bSet & cSet)))