最大长度去除

时间:2018-01-08 21:33:01

标签: 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')
             if a<=i:
                st=st+'100'
                i=a
             else:
                 st='100'
                 i=i+1



          else:

             i=i+1



    print(len(st)) 

输入:101001010000,此代码打印9而不是12, 不知怎的,其他部分没有被执行.. 请有人帮帮我

1 个答案:

答案 0 :(得分:2)

s.replace()删除子串的所有次出现,而不仅仅是第一次出现,并从头开始搜索。

这意味着'101001010000'.replace('100', '')会替换两个次出现:

>>> '101001010000'.replace('100', '')
'101000'

但你算作一个替代品。

str.replace()采用第三个​​参数,即要替换的次数,请参阅documentation

  

str.replace(old, new[, count])

     

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

使用它来限制替换次数。