leetcode20-有效的括号

class Solution:
    def isValid(self, s):
        """
        :type s: str
        :rtype: bool
        """
        s=Stack()
        index=0
        balanced=True
        while index<s.size() and balanced:
            symbol=s[index]
            if symbol in "([{":
                s.push(symbol)
            else:
                if s.isEmpty():
                    balanced=False
                else:
                    top=s.pop()
                    if not matches(top,symbol):
                        balanced=False
            index+=1
        if balanced and s.isEmpty():
            return True
        else:
            return False
        
        def matches(open,close):
            opens="([{"
            closes=")]}"
            return opens.index(open) == closes.index(close)
        
class Stack():
    def __init__(self):
        self.items=[]
        
    def push(self,item):
        self.items.append(item)
    
    def isEmpty(self):
        return self.items==[]
    
    def size(self):
        return len(self.items)

    def pop(self):
        return self.items.pop()

 

相关文章:

  • 2021-09-07
  • 2021-11-05
  • 2022-01-20
猜你喜欢
  • 2021-11-25
  • 2021-12-29
  • 2022-12-23
  • 2021-06-27
  • 2021-05-30
相关资源
相似解决方案