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.コード実装
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