c源代码从文本文件中删除子集事务

时间:2010-04-28 10:24:33

标签: c++ c file file-handling

我有一个包含以下数据的文件

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

被删除,因为它们是其他记录的子集。

1 个答案:

答案 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 ++。祝你好运:)