思路:
原始的平衡字串中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...