我遇到了这个问题,但我根本无法解决它。我必须从字符串中删除重复的字符。
phrase = "oo rarato roeroeu aa rouroupa dodo rerei dde romroma"
Run Code Online (Sandbox Code Playgroud)
输出应该是:“O rato roeu a roupa do rei de roma”
我尝试过类似的事情:
def remove_duplicates(value):
var=""
for i in value:
if i in value:
if i in var:
pass
else:
var=var+i
return var
print(remove_duplicates(entrada))
Run Code Online (Sandbox Code Playgroud)
但它还没有到...
有什么指示可以指导我吗?
从您的示例来看,您似乎想要删除重复的字符序列,而不是整个字符串中的重复字符。这就是我在这里要解决的问题。
您可以使用正则表达式..不确定它的效率有多低,但它确实有效。
>>> import re
>>> phrase = str("oo rarato roeroeu aa rouroupa dodo rerei dde romroma")
>>> re.sub(r'(.+?)\1+', r'\1', phrase)
'o rato roeu a roupa do rei de roma'
Run Code Online (Sandbox Code Playgroud)
这种替换如何沿着字符串进行:
oo -> o
" " -> " "
rara -> ra
to -> to
" "-> " "
roeroe -> roe
Run Code Online (Sandbox Code Playgroud)
ETC..
编辑:适用于不应修改的其他示例字符串:
>>> phrase = str("Barbara Bebe com Bernardo")
>>> re.sub(r'(.+?)\1+', r'\1', phrase)
'Barbara Bebe com Bernardo'
Run Code Online (Sandbox Code Playgroud)