在一个 平衡字符串 中,'L' 和 'R' 字符的数量是相同的。
给你一个平衡字符串 s,请你将它分割成尽可能多的平衡字符串。
注意: 分割得到的每个字符串都必须是平衡字符串,且分割得到的平衡字符串是原平衡字符串的连续子串。
返回可以通过分割得到的平衡字符串的 最大数量 。
示例 1:
输入: s = "RLRRLLRLRL"
输出: 4
解释: s 可以分割为 "RL"、"RRLL"、"RL"、"RL" ,每个子字符串中都包含相同数量的 'L' 和 'R' 。
示例 2:
输入: s = "RLLLLRRRLR"
输出: 3
解释: s 可以分割为 "RL"、"LLLRRR"、"LR" ,每个子字符串中都包含相同数量的 'L' 和 'R' 。
示例 3:
输入: s = "LLLLRRRR"
输出: 1
解释: s 只能保持原样 "LLLLRRRR".
示例 4:
输入: s = "RLRRRLLRLL"
输出: 2
解释: s 可以分割为 "RL"、"RRRLLRLL" ,每个子字符串中都包含相同数量的 'L' 和 'R' 。
题解:
/**
* @param {string} s
* @return {number}
*/
// 由于s为平衡字符串,所以利用count做计数器,遍历过程中当L和R数量相等
// count为0,可分割的平和字符串加1
var balancedStringSplit = function (s) {
let count = 0, ans = 0
for (let cur of s) {
cur == 'L' ? count++ : count--
if (count == 0) {
ans++
}
}
return ans
};