分割均衡字符串
题目描述
均衡串定义:字符串中只包含两种字符,且这两种字符的个数相同。
给定一个均衡字符串,请给出可分割成新的均衡子串的最大个数。
约定:字符串中只包含大写的 X 和 Y 两种字符。
输入描述
输入一个均衡串。
- 字符串的长度:[2, 10000]。
- 给定的字符串均为均衡字符串
输出描述
输出可分割成新的均衡子串的最大个数。
备注
分割后的子串,是原字符串的连续子串
用例1
输入
XXYYXY
输出
2
说明
XXYYXY可分割为2个均衡子串,分别为:XXYY、XY
C++
#include <iostream>
#include <string>
using namespace std;
int maxBalancedSubstrings(const string& s) {
int sumSubstrings = 0;
for (int i = 0; i < s.length(); i += 2) {
int x = 0, y = 0;
for (int j = 0; j <= i; ++j) {
if (s[j] == 'X') {
x++;
} else if (s[j] == 'Y') {
y++;
}
}
if (x == y) {
sumSubstrings++;
}
}
return sumSubstrings;
}
int main() {
string str;
cin >> str;
int result = maxBalancedSubstrings(str);
cout << result << endl;
return 0;
}