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])
相关推荐
WJSKad12354 分钟前
传送带物体检测识别_基于YOLO11与RGCSPELAN改进算法_工业视觉检测系统
人工智能·算法·视觉检测
laplace01234 分钟前
Part3 RAG文档切分
笔记·python·中间件·langchain·rag
dhdjjsjs7 分钟前
Day59 PythonStudy
python
brent4238 分钟前
DAY48 Grad-CAM与Hook函数
python
闲人编程12 分钟前
商品管理与库存系统
服务器·网络·数据库·python·api·数据模型·codecapsule
ServBay21 分钟前
8 个 Python 自动化脚本让你告别重复劳动
后端·python
仍然.23 分钟前
JavaDataStructure---排序
数据结构·算法·排序算法
测试老哥26 分钟前
2026最新软件测试面试热点问题(含答案+文档)
自动化测试·软件测试·python·测试工具·面试·职场和发展·测试用例
ZhuNian的学习乐园29 分钟前
LLM知识检索增强:RAG_系统化解析与工程实践
人工智能·算法
WBluuue33 分钟前
Codeforces Good Bye 2025 Div1+2(ABCDE)
c++·算法