String 最大长度删除

String 最大长度删除,string,python-3.x,data-structures,String,Python 3.x,Data Structures,问题是如果字符串中有“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')

问题是如果字符串中有“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)) 
s=输入(“”)
i=0
如果s中没有“100”:
打印('0')
其他:
st=''
而i
s.replace()
将删除子字符串的所有出现次数,而不仅仅是第一次,并从头开始搜索

这意味着
'101001010000'。替换('100','')
替换两个实例:

>>> '101001010000'.replace('100', '')
'101000'
但你认为这是一个替代品

str.replace()

str.replace(旧的,新的[,计数])

返回一个字符串的副本,其中所有出现的子字符串old都替换为new。如果给定了可选参数计数,则仅替换第一次出现的计数


用它来限制替换的数量。

但它不适用于01111110011010011100000。答案应该是6,这将打印出来12@AbhinavVajpeyi为什么是6?我看到3个
100
子字符串,删除最后一个会得到另一个
100
子字符串。如果这是错误的解释,你的问题就不清楚了。@AbhinavVajpeyi:我想我明白你的意思;最后,替换必须限于一个替换环,而该替换环中的替换不是连续的。很好,所以我建议的最终解决方案不适用,但我确实正确地识别了您方法中的问题。最终的解决方案可能涉及到动态规划。这是一个问题,但我不明白。我在一个网站上发现了这个问题,我无法得到正确的答案。那么,你将如何解决这些问题?我仍然感到困惑,这个问题毫无意义。为什么您希望从
101001010000
中获得12个?