-1

次のようなデータを含むファイルがあります

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

1 に答える 1

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++ に書き直します。幸運を :)

于 2010-04-28T10:52:20.573 に答える