【发布时间】:2019-12-16 21:02:59
【问题描述】:
我有一个包含重复出现的短语的字符串,或者它甚至可能是一个连续出现多次的单词。
尝试了各种方法,但找不到更节省时间和空间的方法。
这是我尝试过的方法
- groupby()
- 重新
String = "what type of people were most likely to be able to be able to be able to be able to be 1.35 ?"
s1 = " ".join([k for k,v in groupby(String.replace("</Sent>","").split())])
s2 = re.sub(r'\b(.+)(\s+\1\b)+', r'\1', String)
在我的情况下,它们似乎都不起作用
我的预期结果:
what type of people were most likely to be able to be 1.35 ?
这些是我提到的一些帖子
- Is there a way to remove duplicate and continuous words/phrases in a string? - 不起作用
- How can I remove duplicate words in a string with Python? - 部分工作,但也需要对大字符串的最佳方式
请不要将我的问题标记为与上述帖子重复,因为我尝试了大多数实现但没有找到有效的解决方案。
【问题讨论】:
-
感谢@hiroprotagonist,它有帮助,但它不能解决我的问题。
-
我相信这是一个相当困难的问题,特别是因为字符串不受任何字符数的限制,并且您必须检查几乎每个组合是否重复出现。
-
@BlueRineS 是的,我同意,你有解决这个问题的方法可以帮助我吗?
-
我不确定,也许我们需要在网上使用更好的搜索关键词。我猜有某种算法可以解决这个问题,但我们根本不知道它的名字。
标签: python python-3.x string