2010-04-28 84 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