试解leetcode算法题--有效括号最少添加

<题目描述>
给定一个由 ‘(’ 和 ‘)’ 括号组成的字符串 S,我们需要添加最少的括号( ‘(’ 或是 ‘)’,可以在任何位置),以使得到的括号字符串有效。
<原题链接>
https://leetcode-cn.com/problems/minimum-add-to-make-parentheses-valid/
<理明思路>
对字符串S进行遍历,另外使用一个list来储存不成对括号个数(也就是左括号个数),而无法匹配到左括号的右括号个数直接记录在ans变量中。最终ans数值与list中括号个数值之和即为需要补充的括号个数。
<样例代码>

class Solution:
    def minAddToMakeValid(self, S):
        """
        :type S: str
        :rtype: int
        """
        ans = 0
        com_arr = []
        for i in S:
            if i=='(':
                com_arr.append(i)
            elif i==')':
                if len(com_arr)==0:
                    ans += 1
                else:
                    com_arr.pop()

        ans += len(com_arr)
        return ans
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值