Skip to content

Latest commit

 

History

History
83 lines (67 loc) · 1.67 KB

File metadata and controls

83 lines (67 loc) · 1.67 KB

1221. 分割平衡字符串

在一个「平衡字符串」中,'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".

提示:

  • 1 <= s.length <= 1000
  • s[i] = 'L' 或 'R'

题解 (Ruby)

1. 贪心

# @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

题解 (Rust)

1. 贪心

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
    }
}