leetcode 1221 分割平衡字串

2022-09-04 09:00:17 字數 1014 閱讀 7322

在乙個「平衡字串」中,'l' 和 'r' 字元的數量是相同的。

給出乙個平衡字串 s,請你將它分割成盡可能多的平衡字串。

返回可以通過分割得到的平衡字串的最大數量。

示例 1:

輸入:s = "rlrrllrlrl"

輸出:4

解釋:s 可以分割為 "rl", "rrll", "rl", "rl", 每個子字串中都包含相同數量的 'l' 和 'r'。

示例 2:

輸入:s = "rllllrrrlr"

輸出:3

解釋:s 可以分割為 "rl", "lllrrr", "lr", 每個子字串中都包含相同數量的 'l' 和 'r'。

示例 3:

輸入:s = "llllrrrr"

輸出:1

解釋:s 只能保持原樣 "llllrrrr".

1 <= s.length <= 1000

s[i] = 'l' 或 'r'

分析:分割的最大數量, 就是將字串s切割成一系列的子串,並且字串中r和l的數量要相等,

那問題來了怎莫切割,我們以示例1來看

示例 1:

輸入:s = "rlrrllrlrl"

從頭開始

r 切割不了

rl 能切割,那到底切不切呢

繼續向下看

rlrrll也可以切割掉

rl 和rlrrll選哪個呢

很明顯題目要求字串數量大,那就肯定切割長度越小的字串越好,切rl,這道題的貪心大概就在這裡吧,那麼解題思路就很明顯了

我們for迴圈遍歷字串,

rcnt代表r的數量,lcnt代表l的數量,cnt代表結果

假使當前字元等於誰,誰的數量就加1,假使rcnt和lcnt剛好相等的時候,不正好就是字串r l數量相等且字串長度最小的時候嘛,那就讓rcnt=0,lcnt=0,cnt+=1,最後的cnt就是答案了

上**

class

solution

}return

cnt;

}}

LeetCode1221分割平衡字元

思路 原始的平衡字串中lr數目相等,分割後得到的多個平衡字串,每個字串中lr也滿足數目相等,所以如果最後剩下未能劃入到字串中的lr數目也相等。如 劃分三個字串,剩下2個l2個r 我突然發現如果不考慮劃分後的平衡字串盡可能多包含l和r,就按照都劃分為最簡單的形式lr或rl lr和rl的總和即為劃分數目...

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...