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])
相关推荐
InfinteJustice几秒前
Laravel Blade 中高效筛选并限制关联分类数据的实践指南
jvm·数据库·python
2301_815279522 分钟前
SQL分组求和结果显示为零的技巧_利用IFNULL或CASE语句
jvm·数据库·python
zhangchaoxies2 分钟前
Python Web应用负载均衡方案_结合Nginx权重设置实现高可用
jvm·数据库·python
qq_334563552 分钟前
C#怎么操作SQLite加密数据库 C#如何创建和使用加密的SQLite数据库文件保护数据【数据库】
jvm·数据库·python
gCode Teacher 格码致知3 分钟前
Python提高:软件测试中Fixture机制-由Deepseek产生
开发语言·python
qq_413847404 分钟前
Redis如何利用Lua实现秒杀资格与库存的双重校验
jvm·数据库·python
2401_871696527 分钟前
苹果微软双修党福音:Navicat如何优化跨系统传输性能延迟
jvm·数据库·python
m0_493934537 分钟前
生产环境SQL如何动态控制窗口的计算范围
jvm·数据库·python
djjdjdjdjjdj7 分钟前
Golang Redis如何做分布式锁_Golang Redis分布式锁教程【详解】
jvm·数据库·python
2301_816660219 分钟前
golang如何实现消息批量消费_golang消息批量消费实现策略
jvm·数据库·python