Balanced strings are those who have equal quantity of 'L' and 'R' characters.
Given a balanced string s
split it in the maximum amount of balanced strings.
Return the maximum amount of splitted balanced strings.
Input: s = "RLRRLLRLRL" Output: 4 Explanation: s can be split into "RL", "RRLL", "RL", "RL", each substring contains same number of 'L' and 'R'.
Input: s = "RLLLLRRRLR" Output: 3 Explanation: s can be split into "RL", "LLLRRR", "LR", each substring contains same number of 'L' and 'R'.
Input: s = "LLLLRRRR" Output: 1 Explanation: s can be split into "LLLLRRRR".
1 <= s.length <= 1000
s[i] = 'L' or 'R'
# @param {String} s
# @return {Integer}
def balanced_string_split(s)
cnt = 0
ret = 0
for ch in s.chars
if ch == 'R'
cnt += 1
elsif ch == 'L'
cnt -= 1
end
if cnt == 0
ret += 1
end
end
return ret
end
impl Solution {
pub fn balanced_string_split(s: String) -> i32 {
let mut amt = 0;
let mut cnt = 0;
for ch in s.chars() {
if ch == 'R' {
cnt += 1;
} else if ch == 'L' {
cnt -= 1;
}
if cnt == 0 {
amt += 1;
}
}
amt
}
}