试解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

你可能感兴趣的:(日常练习,leetcode,算法,数据结构)