我有一个包含以下数据的文件
10 20 30 40 70
20 30 70
30 40 10 20
29 70
80 90 20 30 40
40 45 65 10 20 80
45 65 20
我想从此文件中删除所有子集事务。
输出文件应如下所示
10 20 30 40 70
29 70
80 90 20 30 40
40 45 65 10 20 80
记录如
20 30 70
30 40 10 20
45 65 20
被删除,因为它们是其他记录的子集。
答案 0 :(得分:1)
算法可能是这样的:
sets = list()
f = open("data.txt")
for line in f:
currentSet = set()
for item in line.split():
currentSet.add(int(item))
printIt = True
for s in sets:
if currentSet.issubset(s):
printIt = False
break
if printIt:
print line,
sets.append(currentSet)
顺便说一句,这也是一个Python程序:)我也相信可以提高效率的算法。
下一步:将其重写为C / C ++。祝你好运:)