website/content.en/ChapterFour/1200~1299/1221.Split-a-String-in-Balanced-Strings.md
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.
Example 1:
Input: s = "RLRRLLRLRL"
Output: 4
Explanation: s can be split into "RL", "RRLL", "RL", "RL", each substring contains same number of 'L' and 'R'.
Example 2:
Input: s = "RLLLLRRRLR"
Output: 3
Explanation: s can be split into "RL", "LLLRRR", "LR", each substring contains same number of 'L' and 'R'.
Example 3:
Input: s = "LLLLRRRR"
Output: 1
Explanation: s can be split into "LLLLRRRR".
Constraints:
1 <= s.length <= 1000s[i] = 'L' or 'R'In a "balanced string", the number of 'L' and 'R' characters is the same. Given a balanced string s, split it into as many balanced strings as possible. Return the maximum number of balanced strings that can be obtained through splitting.
Note:
R, subtract one when encountering L, and when the count is 0, it is balanced, so split there.
package leetcode
func balancedStringSplit(s string) int {
count, res := 0, 0
for _, r := range s {
if r == 'R' {
count++
} else {
count--
}
if count == 0 {
res++
}
}
return res
}