【leetcode】921. Minimum Add to Make Parentheses Valid

题目如下:

解题思路:上周都在忙着参加CTF,没时间做题,今天来更新一下博客吧。括号问题在leetcode中出现了很多,本题的解题思路和以前的括号问题一样,使用栈。遍历Input,如果是'('直接入栈;如果是')'则判断栈顶是否为'(',如果栈顶是'(',栈顶元素出栈,否则要加括号的count加1。遍历完成后,count + 栈里剩余的 '(' 的数量就是结果。

代码如下:

class Solution(object):
    def minAddToMakeValid(self, S):
        """
        :type S: str
        :rtype: int
        """
        stack = []
        res = 0
        for i in S:
            if i == '(':
                stack.append(i)
            else:
                if len(stack) > 0 and stack[-1] == '(':
                    stack.pop(-1)
                else:
                    res += 1
        res += len(stack)
        return res

 

posted @ 2018-10-16 10:11  seyjs  阅读(321)  评论(0编辑  收藏  举报