<分区>
抱歉我的英语不好。
我有这样的问题。给定一个字符串(可能是一个很长的字符串)和一个模式,我怎样才能删除字符串中所有出现的模式?请注意,删除前一个后可能会出现新的事件。例如:
string: deaabcbcef
pattern: abc
result: deef
是否有任何算法或有效的方法来解决它(在几秒钟内)?
P/S:我举了一个简单的例子来说明,但我认为不是这样。字符串长度可达10^6个字符,限时2秒。有什么算法吗?
<分区>
抱歉我的英语不好。
我有这样的问题。给定一个字符串(可能是一个很长的字符串)和一个模式,我怎样才能删除字符串中所有出现的模式?请注意,删除前一个后可能会出现新的事件。例如:
string: deaabcbcef
pattern: abc
result: deef
是否有任何算法或有效的方法来解决它(在几秒钟内)?
P/S:我举了一个简单的例子来说明,但我认为不是这样。字符串长度可达10^6个字符,限时2秒。有什么算法吗?
最佳答案
对于python,我不知道是否有比简单的老式循环更好的方法:
new = old.replace(pattern, '')
while new != old:
old = new
new = old.replace(pattern, '')
例子:
>>> old = 'deaabcbcef'
>>> pattern = 'abc'
>>> new = old.replace(pattern, '')
>>> while new != old:
... old = new
... new = old.replace(pattern, '')
...
>>> new
'deef'
关于string - 递归删除字符串中所有出现的子字符串的有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28666655/