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])
相关推荐
追随者永远是胜利者2 小时前
(LeetCode-Hot100)20. 有效的括号
java·算法·leetcode·职场和发展·go
清水白石0083 小时前
Python 纯函数编程:从理念到实战的完整指南
开发语言·python
twilight_4693 小时前
机器学习与模式识别——机器学习中的搜索算法
人工智能·python·机器学习
瓦特what?3 小时前
快 速 排 序
数据结构·算法·排序算法
niuniudengdeng3 小时前
基于时序上下文编码的端到端无文本依赖语音分词模型
人工智能·数学·算法·概率论
hetao17338373 小时前
2026-02-13~16 hetao1733837 的刷题记录
c++·算法
Jia ming4 小时前
《智能法官软件项目》—罪名初判模块
python·教学·案例·智能法官
Jia ming4 小时前
《智能法官软件项目》—法律文书生成模块
python·教学·案例·智能法官软件
曦月逸霜4 小时前
Python数据分析——个人笔记(持续更新中~)
python
海棠AI实验室4 小时前
第六章 从“能用”到“能交付”的关键一刀:偏好对齐(Preference Alignment)数据工程
python·私有模型训练