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_883600251 分钟前
如何配置Oracle的外部口令存储_安全外部密码库Wallet自动登录
jvm·数据库·python
2401_897190554 分钟前
如何在MongoDB中实现连表查询_group与累计求和操作
jvm·数据库·python
justjinji4 分钟前
PHP源码运行是否受硬盘转速影响_7200转vs5400转对比【指南】
jvm·数据库·python
2301_796588504 分钟前
如何用 error 事件全局捕获页面图片或脚本加载失败状态
jvm·数据库·python
曲幽5 分钟前
FastAPI 生产环境避坑指南:用 Alembic 管理数据库迁移,别再手动改表结构了!
python·fastapi·web·async·sqlalchemy·env·alembic·migration
qq_4138474010 分钟前
JavaScript中利用Range对象实现复杂的文本选择操作
jvm·数据库·python
qq_6543669811 分钟前
Vue.js组件通信Emit处理长列表滚动到底部后的数据请求
jvm·数据库·python
用户03321266636713 分钟前
使用 Python 提取 PDF 文件中的文本、表格、图片
python
qq_6543669813 分钟前
CSS3 按钮悬停时显示手型光标(cursor- pointer)的正确写法
jvm·数据库·python
Greyson113 分钟前
如何交换表分区_ALTER TABLE EXCHANGE PARTITION实现数据快速导入导出
jvm·数据库·python