当前位置:   article > 正文

蓝桥杯第十四届python组(研究生)真题--填充_第十四届蓝桥杯大赛软件赛省赛python 研究生组答案

第十四届蓝桥杯大赛软件赛省赛python 研究生组答案

题目描述

有一个长度为 n 的 01 串,其中有一些位置标记为 ?,这些位置上可以任意填充 0 或者 1,请问如何填充这些位置使得这个 01 串中出现互不重叠的 00 和 11 子串最多,输出子串个数。

输入格式

输入一行包含一个字符串

输出格式

输出一行包含一个整数表示答案。

样例输入

1110?0

样例输出

2

提示

如果在问号处填 0 ,则最多出现一个 00 和一个 11:111000 。

对于所有评测用例,1 ≤ n ≤ 1000000 。

答案

步长为2来判断输入的字串是否在str列出的情况里,在的话字串个数加1,否则步长为1继续判断

  1. s=input()
  2. l=len(s)
  3. str=['00','11','?0','?1','0?','1?','??']
  4. i=0
  5. count=0
  6. while i<l:
  7. if s[i:i+2] in str:
  8. count+=1
  9. i+=2
  10. else:
  11. i+=1
  12. print(count)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/705588
推荐阅读
相关标签
  

闽ICP备14008679号