1. 程式人生 > >python stack 使括號有效的最小數

python stack 使括號有效的最小數

Leetcode 921 Minimum Add to Make Parentheses Valid

思想:建立空棧,遍歷字串,遇到左括號壓入棧中,遇到有括號進行判斷,如果棧空直接壓入棧中,如果與棧頂元素匹配則棧頂元素出棧,否則壓棧,返回棧中元素的個數即為所求

class Solution(object):
    def minAddToMakeValid(self, S):
        """
        :type S: str
        :rtype: int
        """
        stack=[]
        for x in S:
            if x=='(':
                stack.append(x)
            elif x==')':
                if not stack:
                    stack.append(x)
                elif stack[-1]=='(':
                    stack.pop()                
                else:
                    stack.append(x)
        return len(stack)