最新华为上机考试
真题目录:点击查看目录
华为OD面试真题精选:点击立即查看
2025华为od机试2025C卷-华为OD上机考试2025年C卷
题目描述
均衡串定义: 字符串只包含两种字符,且两种字符的个数相同。
给定一个均衡字符串,请给出可分割成新的均衡子串的最大个数。
约定字符串中只包含大写的X和Y两种字符。
输入描述
均衡串: XXYYXY
字符串的长度[2,100001]。给定的字符串均为均衡串
输出描述
可分割为两个子串:
XXYY
XY
备注
分割后的子串,是原字符串的连续子串。
用例
| 输入 | XXYYXY |
|---|---|
| 输出 | 2 |
| 说明 | 无 |
解题思路
原题:https://leetcode.cn/problems/split-a-string-in-balanced-strings/description/
这段代码的解题思路如下:
- 初始化变量
ans为0,用于记录可分割成新的均衡子串的最大个数。 - 初始化变量
count为0,count来记录’X’和’Y’的差值即可。当count为0时,表示当前位置可以作为分割点,将ans加1。 - 使用for循环遍历字符串
s的每个字符。 - 在循环中,判断当前字符是’X’还是’Y’:
- 如果是’X’,则将
count加1,表示出现了一个’X’。 - 如果是’Y’,则将
count减1,表示出现了一个’Y’。
- 如果是’X’,则将
- 在每次更新
count后,判断count是否为0:- 如果为0,表示当前位置可以作为分割点,将
ans加1。
- 如果为0,表示当前位置可以作为分割点,将
- 循环结束后,输出
ans,即可分割成新的均衡子串的最大个数。
C++
#

本文详细介绍了华为OD机试中关于均衡字符串的题目,讲解如何分割均衡串以获得最大子串数量。文章提供了C++、Java、JavaScript、Python和C语言的解题思路和代码示例,并附带了多个测试用例。
订阅专栏 解锁全文
6751





