【问题标题】:c source code to remove subset transactions from text file用于从文本文件中删除子集事务的 c 源代码
【发布时间】:2010-04-28 10:24:32
【问题描述】:

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

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

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

【问题讨论】:

  • 你用什么代码解决了这个问题?
  • 将一个数字序列确定为其他数字序列的子集的规则是什么?这个例子对我来说似乎模棱两可。
  • 我想从事务数据库中删除所有子集

标签: c++ c file file-handling


【解决方案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++。祝你好运:)

【讨论】:

  • 用错误的语言给出算法是给我代码问题的一个很好的答案。来,吃一块饼干。 :)
猜你喜欢
  • 1970-01-01
  • 2014-03-16
  • 2012-08-22
  • 1970-01-01
  • 2021-05-03
  • 1970-01-01
  • 2011-02-03
  • 2013-02-27
  • 2013-10-18
相关资源
最近更新 更多