题目:
平衡字符串 中,'L'
和 'R'
字符的数量是相同的。
给你一个平衡字符串 s
,请你将它分割成尽可能多的子字符串,并满足:
- 每个子字符串都是平衡字符串。
返回可以通过分割得到的平衡字符串的 最大数量 。
思路:贪心
根据题意,对于一个平衡字符串s,若s能从中间某处分割成左右两个子串,若其中一个是平衡字符串,则另一个的L和R字符的数量必然是相同的,所以也一定是平衡字符串。
为了最大化分割数量,我们可以不断循环,每次从s中分割出一个最短的平衡前缀,由于剩余部分也是平衡字符串,我们可以将其当作s继续分割,直至s为空时,结束循环。代码实现中,可以在遍历s时用一个变量d维护L和R字符的数量之差,当d=0时就说明找到了一个平衡字符串,将答案加1。