python-小理和01串(赛氪OJ)

[题目描述]

小理有一个 01 串,串中只包含 0 和 1 ,小理要把这个串划分成连续的 m 段,使得每一段至少包含一个 0 和一个 1 。小理想最大化 m ,m 最大是多少呢?
输入格式:

输入包含一行一个 01 串 S 。保证中至少包含一个 0 和一个 1 。
输出格式:

输出一行一个整数表示答案。
样例输入

10101111000010101111010101
样例输出

9
数据范围

对于 100% 的数据,保证 2≤s.length≤105 。

来源/分类(难度系数:四星 )
字符串 前缀和

++完整代码展示:++

n=list(input())

sum=0

m=[]

for i in range(0,len(n)):

if len(m)==0:

m.append(n[i])

else:

m.append(n[i])

if (m[-2]=='1' and m[-1]=='0') or (m[-2]=='0' and m[-1]=='1'):

sum+=1

m=[]

print(sum)

++代码解释:++

"n=list(input()) ",让用户输入一个01串,并将其分割为单个元素后储存在列表n中。

"sum=0
m=[]
for i in range(0,len(n)):
if len(m)==0:
m.append(n[i])
else:
m.append(n[i])
if (m[-2]=='1' and m[-1]=='0') or (m[-2]=='0' and m[-1]=='1'):
sum+=1
m=[]
",令sum=0,建立一个空列表m,接着依次遍历n中元素:判断m的长度是否为0,如果是,则将n[i]添加进列表m中,否则让n[i]添加进m中,判断m的末两位元素是否为01或10,如果是,则让sum+1,令m=[]。

"print(sum)",打印sum的最终结果。

++运行效果展示:++

++++

(声明:以上内容均为原创)

相关推荐
AI科技星4 分钟前
算子数学|独立完整学科章节(百条原创公式· ROOT传世定稿)
大数据·算法·机器学习·数学建模·数据挖掘·量子计算
阿标的博客4 分钟前
Python学习(三):Python程序的运行方式
开发语言·python·学习
IMPYLH5 分钟前
Linux 的 split 命令
linux·运维·python·bash·运维开发·unix
z4424753268 分钟前
MySQL如何配置自动清理失效事务锁_结合定时任务清理
jvm·数据库·python
斯维赤11 分钟前
每天学习一个小算法:堆排序
学习·算法·排序算法
ncj39343790617 分钟前
Canvas 图形开发高频算法面试题
算法·canvas
MediaTea18 分钟前
AI 术语通俗词典:F1 值(分类)
人工智能·算法·机器学习·分类·数据挖掘
KIHU快狐19 分钟前
快狐KIHU|86寸落地触控一体机G+G电容屏HarmonyOS鸿蒙酒吧查询终端
python·华为·harmonyos
qq_3729069325 分钟前
怎么通过宝塔面板对网站数据库进行深度碎片整理_使用Optimize命令优化表空间资源占用
jvm·数据库·python
财经资讯数据_灵砚智能25 分钟前
基于全球经济类多源新闻的NLP情感分析与数据可视化(夜间-次晨)2026年4月24日
人工智能·python·信息可视化·自然语言处理·ai编程