python balancedStringSplit 分割平衡字符串

该博客探讨如何在Python中分割平衡字符串,使得每个子字符串包含相同数量的'L'和'R'。通过示例展示了如何解决这个问题,例如输入"RLRRLLRLRL"可以分割成4个平衡字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分析:
1、栈的方法。
判断栈是否为空,空就字符入栈。判断字符是否不同于栈底部元素,不同就顶部元素出栈,同就字符入栈。每当栈为空,结果累计一次。
2、计算器的方法。
初始n,m=0。判断字符是否等于‘L’(或者等于‘R’),相同就n加一,不同就n减一。每当n==0时,num累计一次。
class Solution:
    def balancedStringSplit(self, s: str) -> int:
        stack = []
        res = 0
        for i in s:
            if not stack:
                stack.append(i)
                #print(stack)
            elif stack[-1]!=i:
                stack.pop()
            else:
                stack.append(i)
            if not stack:
                res+=1
        return res

    def balancedStringSplit1(self, s: str) -> int:
        n = 0
        m = 0

        for i in s:
            if i == "L":
                n += 1
            else:
                n -= 1
                #print(n)

            if n == 0:
                m += 1

        return m
if __name__ == '__main__':
    s='RLRRLLRLRL'
    solu=Solution()
    re=solu.balancedStringSplit(s)
    print(re)
    re1=solu.balancedStringSplit1(s)
    print(re1)

运行:

4
4

Process finished with exit code 0

'''

给出一个平衡字符串 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".  

’‘’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值