1221. 分割平衡字符串
题目
在一个 平衡字符串 中,‘L’ 和 ‘R’ 字符的数量是相同的。
给你一个平衡字符串 s,请你将它分割成尽可能多的平衡字符串。
注意:分割得到的每个字符串都必须是平衡字符串。
返回可以通过分割得到的平衡字符串的 最大数量 。
1 <= s.length <= 1000
s[i] = 'L' 或 'R'
s
是一个 平衡 字符串
解法
解法1
看到平衡和分割,第一反应是想到了栈,遍历到R
进栈,L
出栈,当栈长度为0时总数加一.在这里我们可以用int
来代表,遇到R
加一,遇到L
减一,当int
等于0时总数加一.
class Solution {
public int balancedStringSplit(String s) {
int num = 0, sum = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == 'R') num++;
else num--;
if (num == 0) sum++;
}
return sum;
}
}