Leetcode 1223分割バランス文字列(python)

768 ワード

1.タイトルの説明
1つの「バランス文字列」では、「L」と「R」の文字の数は同じです.
バランス文字列sを与えます.できるだけ多くのバランス文字列に分割してください.
分割によって得られるバランス文字列の最大数を返します.
例1:入力:s=“RLRRLLRL”出力:4説明:sは“RL”、“RRLL”、“RL”、“RL”、“RL”に分割でき、各サブ文字列には同じ数の“L”と“R”が含まれる.
例2:入力:s=“RLLLLRRRLR”出力:3説明:sは“RL”、“LLLRRR”、“LR”に分割でき、各サブ文字列には同じ数の“L”と“R”が含まれる.
2.問題の解き方
例から分かるように、各サブ文字列には同じ数の「L」および「R」が含まれており、これは、要求される「L」および「R」の数だけでなく、位置に関連していることを示している.
したがって、「L」を1、「R」を−1とすることができ、相殺が0の場合、説明は1つのグループに分けることができる.
3.コード実装
class Solution:
    def balancedStringSplit(self, s: str):
        res = 0
        n = 0
        for i in s:
            if(i == 'L'):
                n += 1
            else:
                n -= 1
            if(n == 0):
                res += 1
        return res