1221. Split a String in Balanced Strings

1221. Split a String in Balanced Strings #

Problem #

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 <= 1000
  • s[i] = 'L' or 'R'

Problem Summary #

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:

  • 1 <= s.length <= 1000
  • s[i] = ‘L’ or ‘R’

Solution Approach #

  • Given a string, the requirement is to split this string into some substrings in which the number of R and L characters is equal. Ask how many substrings satisfying the condition it can be split into.
  • This is an easy problem; just simulate according to the problem statement. Scan from left to right, add one when encountering R, subtract one when encountering L, and when the count is 0, it is balanced, so split there.

Code #


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
}


Calendar Jun 25, 2026
Edit Edit this page
Total visits:   You are visitor No.
中文