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])
相关推荐
3Bronze1Pyramid17 小时前
【RNAErnie 大模型】
人工智能·深度学习·算法
Дерек的学习记录1 天前
C++:入门基础(下)
开发语言·数据结构·c++·学习·算法·visualstudio
徐同保1 天前
python异步函数语法解析,async with ... as ...语法解析
数据库·python·oracle
yugi9878381 天前
无线传感器网络中GAF算法节点特性分析
网络·算法
m***06681 天前
SpringBoot项目中读取resource目录下的文件(六种方法)
spring boot·python·pycharm
1027lonikitave1 天前
使用斐波那契数列讲解尾递归
算法
eWidget1 天前
数据可视化进阶:Seaborn 柱状图、散点图与相关性分析
数据库·python·信息可视化·kingbase·数据库平替用金仓·金仓数据库
清水白石0081 天前
Python 柯里化完全指南:从函数式思想到工程实践
linux·服务器·python
滴滴答滴答答1 天前
LeetCode Hot100 之 16 合并两个有序链表
算法·leetcode·链表