题目描述
均衡串定义: 字符串只包含两种字符,且两种字符的个数相同。
给定一个均衡字符串,请给出可分割成新的均衡子串的最大个数。
约定字符串中只包含大写的X和Y两种字符。
输入描述
均衡串: XXYYXY
字符串的长度[2,100001]。给定的字符串均为均衡串
输出描述
可分割为两个子串:
XXYY
XY
备注
分割后的子串,是原字符串的连续子串。
用例1
输入
XXYYXY
输出
2
用例23
输入
XYYXXYXXYY
输出
4
考点
逻辑分析
解题思路
初始化计数器变量 count 为0,用于统计当前遍历到的 ‘X’ 和 ‘Y’ 的数量差值;
初始化结果变量 res 为0,用于记录分割出的均衡子串的数量。遍历整个输入字符串:
当遇到字符 ‘X’ 时,将 count 加1;
当遇到字符 ‘Y’ 时,将 count 减1;
当 count 变为0时,说明从字符串起始位置到当前位置形成了一个均衡子串,因此将结果变量 res 加1。最后,输出结果变量 res,即为所求的均衡子串的最大个数。
代码
c++