解题思路:
你可能被题目吓到,题目要求 '?' 可以被随时替代,那也就是说明:'00、11、0?、1?、?1、?0、??'都是正确的,那我们只需要进行步长为2的遍历,对满足条件的进行计数就可以了
注意事项:
以用例'1110?0'为例,
首先步长为2,到达'10?0',这个时候,是如下代码的else情况,10不满足,
这个时候我们进行步长为1的跳跃,字符串变成'0?0',这种情况不管你是2个0还是3个0,都只有一个符合条件的串
假设我们遇到else条件,进行步长为2的跳跃是否也是可行呢?可以做个验证,剩下'?0',也是只有一个符合条件的串
倒数第二行的代码,+1、+2均可以。
参考代码:
s=input()
lens=len(s)
i=0
strs=['00','11','0?','1?','?0','?1','??']
count=0
while i<lens:
if s[i-1:i+1] in strs:
count+=1
i+=2
else:
i+=1
print(count)
0.0分
7 人评分