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])
相关推荐
0x7F7F7F7F3 分钟前
算法竞赛数学知识大全
算法
weixin_421585019 分钟前
解释代码:val_pred = vxm_model.predict(val_input)--与tensor对比
python
xwill*14 分钟前
python 字符串拼接
linux·windows·python
superman超哥28 分钟前
仓颉锁竞争优化深度解析
c语言·开发语言·c++·python·仓颉
一晌小贪欢29 分钟前
【Python办公自动化】Python办公自动化常用库新手指南
开发语言·python·python自动化办公·python3·python办公自动化·python办公
业精于勤的牙37 分钟前
最长特殊序列(二)
java·开发语言·算法
其美杰布-富贵-李1 小时前
Python 反射完整学习笔记
笔记·python·学习·反射
yong99901 小时前
C#实现OPC客户端与S7-1200 PLC的通信
开发语言·网络·算法·c#
热心市民小刘05051 小时前
12.23二叉树的层序遍历
python
yaoh.wang1 小时前
力扣(LeetCode) 111: 二叉树的最小深度 - 解法思路
python·程序人生·算法·leetcode·面试·职场和发展·深度优先