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])
相关推荐
2401_87169652几秒前
c++如何将程序的私有配置信息加密保存为.enc格式的二进制文件【详解】
jvm·数据库·python
2301_775148152 分钟前
Redis如何管理高频写入下的AOF文件膨胀_通过调低auto-aof-rewrite-percentage提速重写
jvm·数据库·python
weixin_424999364 分钟前
c++如何利用内存映射读取超大文件_CreateFileMapping与mmap【进阶】
jvm·数据库·python
m0_674294646 分钟前
C++如何读取YAML配置并动态生成UI界面_反射机制模拟用法【进阶】
jvm·数据库·python
未来转换13 分钟前
基于A2A协议的生产应用实践指南(Java)
java·开发语言·算法·agent
财经资讯数据_灵砚智能20 分钟前
基于全球经济类多源新闻的NLP情感分析与数据可视化(夜间-次晨)2026年4月20日
人工智能·python·信息可视化·自然语言处理·ai编程
m0_6403093024 分钟前
如何用SQL统计每组的平均值同时显示原行_OVER子句
jvm·数据库·python
qq_3721542329 分钟前
Redis如何在应用启动时预热缓存数据
jvm·数据库·python
谭欣辰29 分钟前
AC自动机:多模式匹配的高效利器
数据结构·c++·算法
解救女汉子34 分钟前
CSS如何利用CSS变量进行渐变色管理_提升渐变配置的灵活性
jvm·数据库·python