判断括号是否合法

2019-03-26  本文已影响0人  进击的小恶魔

用堆栈来做,比较经典

  1. 左括号就push
  2. 右括号就peak,查看栈顶是否有匹配的括号:有就把栈顶元素pop,没有就报错
  3. 全部字符串结束后,堆栈是否为空:空合法,非空不合法
def isValid(s):
    stack = []
    paren_map = {')':'(',']':'[','}':'{'}
    for c in s :
        if c not in paren_map:
            stack.append(c)
        elif not stack or paren_map[c] != stack.pop():
            return False
    return not stack

leetcode 20

上一篇 下一篇

猜你喜欢

热点阅读