当前位置: 首页 > news >正文

华为OD 机试真题 - 分割均衡字符串(Python)

alt

题目描述

均衡串定义:字符串只包含两种字符,且两种字符的个数相同。

给定一个均衡字符串,请给出可分割成新的均衡子串的最大个数。

约定字符串中只包含大写的’X"和’Y’两种字符。

输入描述

均衡串:XXYYXY

字符串的长度[2,10000]。给定的字符用均为均衡串。

输出描述

可分割为两个子串:

XXYY

XY

示例1

输入
XXYYXY输出
2备注
分割后的子串,是原字符串的连续子串。

题解

本题属于贪心算法题。通过遍历字符串,实时计算字符出现的次数,并在满足条件时立即进行分割。

  1. 初始化计数器
    • 使用两个计数器xcntycnt分别记录字符’X’和’Y’的出现次数。
  2. 遍历字符串
    • 遍历字符串中的每一个字符,根据字符类型更新相应的计数器。
    • 每当两个计数器相等时,说明当前子串是一个均衡子串,此时可以增加均衡子串计数器ans的值。
  3. 输出结果
    • 最后,输出均衡子串的最大个数。

Python

s = input()  # 读取输入的均衡字符串ans = 0  # 初始化结果计数器
xcnt, ycnt = 0, 0  # 初始化字符'X'和'Y'的计数器# 遍历字符串中的每一个字符
for ch in s:if ch == 'X':xcnt += 1  # 如果字符是'X',增加'X'的计数else:ycnt += 1  # 如果字符是'Y',增加'Y'的计数if xcnt == ycnt:ans += 1  # 当'X'和'Y'的计数相等时,增加均衡子串计数print(ans)  # 输出均衡子串的最大个数

🙏整理题解不易, 如果有帮助到您,请给点个赞 ‍❤️‍ 和收藏 ⭐,让更多的人看到。🙏🙏🙏4

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 认识sm1,sm2,sm3,sm4以及如何在Node.js实现
  • 如何解决隐藏游戏服务器的源IP问题
  • Windows 如何安装和卸载 OneDrive?具体方法总结
  • 基于R语言的水文、水环境模型优化技术及快速率定方法与多模型案例
  • 数仓工具—Hive语法之事务表更新Transactional Table Update
  • 【学习笔记】无人机(UAV)在3GPP系统中的增强支持(三)-机上无线电接入节点无人机
  • 南京邮电大学统计学课程实验2 用EXCEL进行参数估计假设检验 指导
  • camtasia怎么剪掉不用的部分 屏幕录制的视频怎么裁剪上下不要的部分 camtasia studio怎么裁剪视频时长 camtasia怎么剪辑视频教程
  • Spring事件监听机制详解
  • springboot定时任务 @Scheduled
  • 1.5-协程基础与关键知识:连接线程的世界-回调型 API 协作
  • 《0基础》学习Python——第十五讲
  • Docker安装Zookeeper、RocketMQ
  • 【源码阅读】osproxy对象存储分布式代理(1)
  • Python面试题:在 Python 中,如何使用 multiprocessing 模块?
  • 《Java编程思想》读书笔记-对象导论
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 0x05 Python数据分析,Anaconda八斩刀
  • chrome扩展demo1-小时钟
  • gops —— Go 程序诊断分析工具
  • js操作时间(持续更新)
  • Js基础知识(四) - js运行原理与机制
  • js数组之filter
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • PHP面试之三:MySQL数据库
  • Web标准制定过程
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 给github项目添加CI badge
  • 区块链将重新定义世界
  • 少走弯路,给Java 1~5 年程序员的建议
  • 我是如何设计 Upload 上传组件的
  • 优秀架构师必须掌握的架构思维
  • 在weex里面使用chart图表
  • # 计算机视觉入门
  • #if和#ifdef区别
  • #Linux(Source Insight安装及工程建立)
  • $().each和$.each的区别
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (第27天)Oracle 数据泵转换分区表
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (力扣题库)跳跃游戏II(c++)
  • (篇九)MySQL常用内置函数
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)大型网站的系统架构
  • .NET WPF 抖动动画
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • .Net各种迷惑命名解释
  • .NET未来路在何方?
  • .NET下ASPX编程的几个小问题
  • .pyc文件是什么?
  • /etc/shadow字段详解
  • @GetMapping和@RequestMapping的区别