LeetCode1221分割平衡字元

2021-10-03 01:19:19 字數 975 閱讀 3639

思路:

原始的平衡字串中lr數目相等,分割後得到的多個平衡字串,每個字串中lr也滿足數目相等,所以如果最後剩下未能劃入到字串中的lr數目也相等。如:劃分三個字串,剩下2個l2個r

我突然發現如果不考慮劃分後的平衡字串盡可能多包含l和r,就按照都劃分為最簡單的形式lr或rl lr和rl的總和即為劃分數目結果

所以問題轉換為:判斷字串**現多少個lr和rl,但是這樣如果是lrll,第二個r就被算了兩遍,其實這種想法把問題想的越來越複雜了,來看看合理的思路吧

總結:這道題其實和之前做的1021刪除括號很類似,都可以理解為如果滿足配對條件就拆解為乙個單元,可以刪除,數目上+1,

對於這種問題可以用如下方法解決:每個單元看作左右兩部分組成

左 a+1 右 a-1,當num_左=num_右,配對成功,即a=0

記錄a=0的次數

其實a就是計數器啊,1代表左出現,-1代表右出現,左右相等配對成功,計數器清零

這道題和1021括號不同的是,rl lr都可以理解為配對成功,即單元的左右是可以互換的,但是括號單元的左右順序確定() 如果)( 是不成立的

python**如下:

class solution(object):

def balancedstringsplit(self, s):

""":type s: str

:rtype: int

"""a = 0

res = 0

for i in range(len(s)):

if s[i] == "l":

a += -1

elif s[i] =="r":

a += 1

if a == 0:

res +=1

return res

LeetCode 1221 分割平衡字串

在乙個 平衡字串 中,l 和 r 字元的數量是相同的。給出乙個平衡字串 s,請你將它分割成盡可能多的平衡字串。返回可以通過分割得到的平衡字串的最大數量。示例 1 輸入 s rlrrllrlrl 輸出 4 解釋 s 可以分割為 rl rrll rl rl 每個子字串中都包含相同數量的 l 和 r 示例...

LeetCode 1221 分割平衡字串

題目 在乙個 平衡字串 中,l 和 r 字元的數量是相同的。給出乙個平衡字串 s,請你將它分割成盡可能多的平衡字串。返回可以通過分割得到的平衡字串的最大數量。示例 1 輸入 s rlrrllrlrl 輸出 4 解釋 s 可以分割為 rl rrll rl rl 每個子字串中都包含相同數量的 l 和 r...

LeetCode 1221 分割平衡字串

1221分割平衡字串 author 作者 your name 在乙個 平衡字串 中,l 和 r 字元的數量是相同的。給出乙個平衡字串 s,請你將它分割成盡可能多的平衡字串。返回可以通過分割得到的平衡字串的最大數量。示例 1 輸入 s rlrrllrlrl 輸出 4 解釋 s 可以分割為 rl rrl...