美文网首页
LeetCode 1221. Split a String in

LeetCode 1221. Split a String in

作者: LiNGYu_NiverSe | 来源:发表于2020-11-25 00:34 被阅读0次

    Balanced strings are those who have equal quantity of 'L' and 'R' characters.
    平衡的字符串是指具有相等数量的“ L”和“ R”字符的字符串。
    Given a balanced string s split it in the maximum amount of balanced strings.
    给定一个平衡字符串s,它将拆分为最大数量的平衡字符串。
    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'.
    输入:s =“ RLRRLLRLRL”
    输出:4
    说明:s可分为“ RL”,“ RRLL”,“ RL”,“ RL”,每个子串包含相同数量的“ L”和“ 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'.
    输入:s =“ RLLLLRRRLR”
    输出:3
    说明:s可分为“ RL”,“ LLLRRR”,“ LR”,每个子字符串包含相同数量的“ L”和“ R”。

    Example 3:
    Input: s = "LLLLRRRR"
    Output: 1
    Explanation: s can be split into "LLLLRRRR".
    输入:s =“ LLLLRRRR”
    输出:1
    说明:可以分为“ LLLLRRRR”。

    Example 4:
    Input: s = "RLRRRLLRLL"
    Output: 2
    Explanation: s can be split into "RL", "RRRLLRLL", since each substring contains an equal number of 'L' and 'R'

    Constraints:

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

    Solution:

    class Solution:
        def balancedStringSplit(self, s: str) -> int:
            single = 0
            ans = 0
            for c in s:
                if c == "R":
                    single += 1
                else:
                    single -= 1
                if single == 0:
                    ans += 1
            return ans
    

    We just need to a variable to track when the number of L and R become the same. When it happens, we add 1 to our ans.
    我们只需要一个变量来跟踪L和R的数量何时相同。一旦相同,我们将ans加1。最后返回ans。

    相关文章

      网友评论

          本文标题:LeetCode 1221. Split a String in

          本文链接:https://www.haomeiwen.com/subject/wdlgiktx.html