2010-04-28 87 views
-1

删除子集交易我有一个包含数据的文件如下C源代码从文本文件

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 

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

+4

这功课吗? – AshleysBrain 2010-04-28 10:26:26

+1

你试图解决这个问题的代码是什么? – 2010-04-28 10:28:24

+0

确定一个数字序列作为其他数字序列子集的规则是什么?这个例子对我来说似乎很模糊。 – 2010-04-28 14:06:07

回答

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

+0

给出错误语言的算法是给出代码问题的不错答案。在这里,有一个cookie。 ':)' – sbi 2010-04-28 11:51:32

+0

请你能帮助如何在c/C++中编写代码,请帮助我! – user324887 2010-04-29 07:40:06