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])
相关推荐
汤愈韬4 分钟前
模型求解算法
人工智能·算法·机器学习
circuitsosk16 分钟前
知识问答领域大语言模型设计:对标豆包与DeepSeek的工程实践
人工智能·python·语言模型·自然语言处理·llm·豆包·deepseek
卷无止境16 分钟前
从源码到货架:拆解 Python 打包发布的核心逻辑
后端·python
Keven_1123 分钟前
算法札记:DP中的滚动数组
算法·滚动数组
luj_176824 分钟前
随机性在算法与占卜中的共通原理
c语言·开发语言·c++·经验分享·算法
这就是佬们吗27 分钟前
企业Agent落地为什么需要RAG?
人工智能·python·fastapi
AI视觉网奇33 分钟前
glb读取颜色
开发语言·python
Chen—LSN1 小时前
C语言——深度理解指针(5)
c语言·数据结构·算法·排序算法
半兽先生1 小时前
2026年RAG系统主流开源文档解析工具选型指南:PaddleOCR、MinerU、LiteParse、HunyuanOCR、Apache Tika 全面对比
人工智能·python·机器学习·ai·开源
佳児素花痴╮3 小时前
树的基础知识与查找排序算法
数据结构·算法