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])
相关推荐
qingy_20462 分钟前
Java基础:数据类型
java·开发语言·算法
小璐资源网2 分钟前
排序算法概览:十大排序算法一览
数据结构·算法·排序算法
tryCbest3 分钟前
Django 基础入门教程(第四篇):Form组件、Auth认证、Cookie/Session与中间件
python·django
王夏奇4 分钟前
Python-对excel文件操作的总览
开发语言·python·excel
2501_941982055 分钟前
Python 实现企业微信外部群机器人:轻量化消息推送方案
python·机器人·企业微信
骇客野人7 分钟前
python爬虫例子,且处理反爬的网站也能爬
开发语言·爬虫·python
Allen_LVyingbo7 分钟前
PostgreSQL动态分区裁剪技术:查询性能优化解析(2026年版)
数据库·算法·观察者模式·postgresql·性能优化·架构
hutengyi8 分钟前
SpringBoot项目中读取resource目录下的文件(六种方法)
spring boot·python·pycharm
老天文学家了9 分钟前
蓝桥杯:直线
python
铁手飞鹰12 分钟前
eBUS SDK Python环境安装
开发语言·python