12.填充

12.填充 - 蓝桥云课 (lanqiao.cn)

问题描述

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

输入格式

输入一行包含一个字符串

输出格式

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

样例输入

1110?0

样例输出

复制代码
import os
import sys

# 请在此输入您的代码
s=input()
n=len(s)
dp=[0]*n

for i in range(1,n):
  if s[i]==s[i-1] or s[i]=='?' or s[i-1]=='?': #如果当前位置的字符与前一个位置的字符相同,或者当前位置或前一个位置为问号(?)
    dp[i]=dp[i-2]+1  #i-2应该是因为要00/11 才算进子串数量
  else: #如果当前位置的字符与前一个位置的字符不相同,且当前位置和前一个位置都不是问号
    dp[i]=dp[i-1] #0,1变化,最长字串长度不发生变化,等于前一个长度
print(dp[-1])
相关推荐
Csvn5 小时前
异常处理与错误调试
python
Csvn5 小时前
Python 面向对象编程基础:类与对象
python
yy我不解释5 小时前
关于comfyui的mmaudio音频生成插件时时间不一致问题(四)(video upload)(解决方法)
开发语言·python·ai作画·音视频·comfyui
干啥啥不行,秃头第一名5 小时前
C++与机器学习框架
开发语言·c++·算法
2301_776508725 小时前
用Python和Twilio构建短信通知系统
jvm·数据库·python
爱吃涮毛肚的肥肥(暂时吃不了版)5 小时前
Leetcode——181.超过经理收入的员工
算法·leetcode·职场和发展
紫丁香5 小时前
pytest_自动化测试5
python·功能测试·单元测试·集成测试·pytest
姚青&5 小时前
Pytest fixture 参数化(params 参数)
开发语言·python·pytest
Charlie_lll5 小时前
力扣解题-接雨水
算法·leetcode
2301_793804695 小时前
深入理解Python的if __name__ == ‘__main__‘
jvm·数据库·python