【Leetcode_总结】 1221. 分割平衡字符串 - python
程序员文章站
2024-03-19 19:05:10
...
在一个「平衡字符串」中,'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'
链接:https://leetcode-cn.com/problems/split-a-string-in-balanced-strings/
思路:
代码:
class Solution:
def balancedStringSplit(self, s: str) -> int:
res = 0
stack = list(s)
tmp = [stack.pop()]
while stack:
if stack[-1] != tmp[-1]:
tmp.pop(0)
stack.pop()
if not tmp:
res += 1
if stack:
tmp.append(stack.pop())
else:
break
else:
tmp.append(stack.pop())
return res
上一篇: 斐波那契查找(黄金分割查找算法)
下一篇: 2018年3月7日训练日记