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的最终结果。

++运行效果展示:++

++++

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

相关推荐
飞翔的佩奇1 小时前
【完整源码+数据集+部署教程】表盘指针检测系统源码和数据集:改进yolo11-CA-HSFPN
python·yolo·计算机视觉·数据集·yolo11·表盘指针检测
larance2 小时前
SQLAlchemy 的异步操作来批量保存对象列表
数据库·python
搏博2 小时前
基于Python3.10.6与jieba库的中文分词模型接口在Windows Server 2022上的实现与部署教程
windows·python·自然语言处理·flask·中文分词
lxmyzzs3 小时前
pyqt5无法显示opencv绘制文本和掩码信息
python·qt·opencv
Coovally AI模型快速验证4 小时前
农田扫描提速37%!基于检测置信度的无人机“智能抽查”路径规划,Coovally一键加速模型落地
深度学习·算法·yolo·计算机视觉·transformer·无人机
pusue_the_sun4 小时前
数据结构:二叉树oj练习
c语言·数据结构·算法·二叉树
萧鼎4 小时前
Python pyzmq 库详解:从入门到高性能分布式通信
开发语言·分布式·python
RaymondZhao345 小时前
【全面推导】策略梯度算法:公式、偏差方差与进化
人工智能·深度学习·算法·机器学习·chatgpt
zhangfeng11335 小时前
DBSCAN算法详解和参数优化,基于密度的空间聚类算法,特别擅长处理不规则形状的聚类和噪声数据
算法·机器学习·聚类
yujkss5 小时前
Python脚本每天爬取微博热搜-终版
开发语言·python