コート1221号.
1629 ワード
この問題はどのように解決したのか.
まずresult(戻る最終結果)の左、右の3つの変数に設定します.
だから「L」が出ると左側が増えますR'が出てきたらrightを増やします.
この問題を解決するアルゴリズムは,同じ値を2つ増やし,左,右を0にし,結果を1に増やす.
私の答え:
class Solution:
def balancedStringSplit(self, s: str) -> int left = 0
right = 0
result = 0
for i in s:
if i == 'L':
left += 1
if right == left:
left = 0
right = 0
result += 1
else:
right += 1
if left == right:
left = 0
right = 0
result += 1
return result
他の人の回答:from itertools import accumulate as acc
class Solution:
def balancedStringSplit(self, s: str) -> int:
return list(acc(1 if c == 'L' else -1 for c in s)).count(0)
class Solution:
def balancedStringSplit(self, s: str) -> int:
res = cnt = 0
for c in s:
cnt += c == 'L'
cnt -= c == 'R'
res += cnt == 0
return res
def balancedStringSplit(self, s: str) -> int:
res = cnt = 0
for c in s:
cnt += 1 if c == 'L' else -1
if cnt == 0:
res += 1
return res
本当に他の人とずいぶん違います.Reference
この問題について(コート1221号.), 我々は、より多くの情報をここで見つけました https://velog.io/@wwha2121/리트코트-1221번テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol