我想检查是否存在子字符串对,然后删除多个子字符串对。我尝试过以下方法:
s = 'aabbccddee'
for j in range(0, len(s)-1):
y = j + 1
if s[j].lower() + s[y].lower() in ['aa', 'bb', 'cc', 'dd']:
z = s[j] + s[y]
s = s.replace(z, '')
else:
print(False)
在这种情况下,所需的输出将是
s = 'ee'
。我取得的最好成绩是'bbccddee'
范围 -1 是因为我遇到了超出范围的错误。这似乎解决了它。
并且
z
在那里,因为 s.replace(s[j].lower() + s[y].lower(), "")
没有通过。
如果您的目标是从
s
中删除一些子字符串,您可以简单地执行以下操作:
targets = ['aa','bb','cc','dd']
for t in targets:
s = s.replace(t, '')
无需手动检查子字符串是否确实存在,因为
replace
无论如何都会这样做。
我会给你一个提示,希望你能继续下去。
将 'aa' 替换为 '' 后,当您进入第二次迭代时,它会从第二个 'b' 开始检查,因为 j 的值为 1。当您循环并修改同一字符串时,结果不是您所期望的.