问题是如果字符串中有“100”作为子字符串,那么我们可以删除这个子字符串。任务是找到可以删除的最长子串的长度?
s=input('')
i=0
if '100' not in s:
print('0')
else:
st=''
while i<len(s)-2:
if s[i:i+3]=='100':
s= s.replace('100','')
a=s.find('100')
if a<=i:
st=st+'100'
i=a
else:
st='100'
i=i+1
else:
i=i+1
print(len(st))
输入:101001010000,此代码打印9而不是12, 不知怎的,其他部分没有被执行.. 请有人帮帮我
答案 0 :(得分:2)
s.replace()
删除子串的所有次出现,而不仅仅是第一次出现,并从头开始搜索。
这意味着'101001010000'.replace('100', '')
会替换两个次出现:
>>> '101001010000'.replace('100', '')
'101000'
但你算作一个替代品。
str.replace()
采用第三个参数,即要替换的次数,请参阅documentation:
str.replace(old, new[, count])
返回字符串的副本,其中所有出现的子字符串 old 都替换为 new 。如果给出了可选参数 count ,则仅替换第一个 count 次出现。
使用它来限制替换次数。