演算法題:判斷括號字串是否有效

GetaChan發表於2019-11-28

題目來源於力扣

理論基礎

堆疊&佇列

判斷括號字串是否有效

題目描述

給定一個只包括 '(',')','{','}','[',']'的字串,判斷字串是否有效。

有效字串需滿足:
左括號必須用相同型別的右括號閉合。
左括號必須以正確的順序閉合。

注意空字串可被認為是有效字串。

示例:

輸入: "()"
輸出: true

輸入: "()[]{}"
輸出: true

輸入: "(]"
輸出: false

輸入: "([)]"
輸出: false

輸入: "{[]}"
輸出: true

解題思路

棧,兩兩匹配

Python 解法

def isValid(self, s):
    stack = []
    paren_map = {')':'(', ']':'[', '}':'{'}

    for c in s:
        if c not in paren_map:
            stack.apend(c)
        elif not stack or paren[c] != stack.pop():
            return False
    return not stack

相關文章