题目
在一个「平衡字符串」中,‘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”.
分析:
遍历字符串拿到每个字符,如果是’R’让一个变量++,如果是’L’让另一个变量++,当两个变量相等时标记位++。
代码如下:
public int balancedStringSplit(String s) {
int R = 0;
int L = 0;
int flag = 0;
for(int i=0;i<s.length();i++){
char c = s.charAt(i); //返回指定索引处的字符
if(c=='R'){
R++;
}else{
L--;
}
if(R+L == 0){
flag++;
}
}
return flag;
}