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])
相关推荐
Ulyanov4 分钟前
《从质点到位姿:基于Python与PyVista的导弹制导控制全栈仿真》: 终极试炼——全链路综合仿真与蒙特卡洛打靶
开发语言·python·系统仿真·雷达电子对抗
小白编程锤炼17 分钟前
深入解析:质量门禁
人工智能·算法·架构·vibe-coding
梦想不只是梦与想27 分钟前
python 中数据类型转换
python·数据类型转换
毋语天1 小时前
Python 模块、包与异常处理:构建更稳健的程序
开发语言·python
阿kun要赚马内1 小时前
Python多进程中的数据隔离
python
yongui478341 小时前
基于 GA 优化的 BP 神经网络算法分析与 MATLAB 实现
神经网络·算法·matlab
才兄说1 小时前
机器人二次开发机器狗巡检?低耗电自主绕行
python
-SOLO-2 小时前
Python 爬取小红书 文章标题和内容 仅供学习
android·python·学习
小陈工2 小时前
Python异步编程进阶:asyncio高级模式与性能调优
开发语言·前端·数据库·人工智能·python·flask·numpy
阿旭超级学得完2 小时前
C++11(初始化)
java·开发语言·数据结构·c++·算法