【问题标题】:How to compute the minimum number of maximal strings?如何计算最大字符串的最小数量?
【发布时间】:2014-01-19 05:20:57
【问题描述】:

假设我有一组字符串。如果一个字符串是另一个字符串的子字符串,那么前者应该被移除集合。

我的想法是迭代原始集合中的所有字符串,并针对集合中的其他字符串对每个字符串进行测试,并删除原始集合中其他字符串的子字符串。但这会导致对原始集合的就地修改,这可能会导致实现中的一些问题。

有没有人对如何实现这一点有更好的了解?谢谢。

【问题讨论】:

  • 如果能给出输入/输出的例子就更好了。
  • 字符串是序列,而不是集合,因此您必须在此上下文中定义“子集”。
  • 你是指子集还是子串?
  • @user2357112 我已将问题中的子集更改为子字符串。

标签: python substring in-place


【解决方案1】:

你的问题不是很清楚。但如果我理解正确,你可以这样做

l = sorted(["abcd", "abc", "ab", "a"], key = len)
print [ss for idx, ss in enumerate(l) if all(ss not in cs for cs in l[idx + 1:])]

输出

['abcd']

【讨论】:

  • 这有一个 O(n^2) 运行时。我想知道某种分层排名是否会更快
猜你喜欢
  • 2017-09-06
  • 2018-03-21
  • 2021-07-22
  • 2018-11-12
  • 1970-01-01
  • 2011-06-18
  • 2016-11-16
  • 1970-01-01
  • 2013-09-17
相关资源
最近更新 更多