题目描述
有一个长度为 n 的 01 串,其中有一些位置标记为 ?,这些位置上可以任意填充 0 或者 1,请问如何填充这些位置使得这个 01 串中出现互不重叠的 00 和 11 子串最多,输出子串个数。
输入格式
输入一行包含一个字符串。
输出格式
输出一行包含一个整数表示答案。
样例输入
1110?0
样例输出
2
提示
如果在问号处填 0 ,则最多出现一个 00 和一个 11:111000 。
对于所有评测用例,1 ≤ n ≤ 1000000 。
答案
步长为2来判断输入的字串是否在str列出的情况里,在的话字串个数加1,否则步长为1继续判断
s=input()
l=len(s)
str=['00','11','?0','?1','0?','1?','??']
i=0
count=0
while i<l:
if s[i:i+2] in str:
count+=1
i+=2
else:
i+=1
print(count)