題目來源於力扣
理論基礎
堆疊&佇列
判斷括號字串是否有效
題目描述
給定一個只包括 '(',')','{','}','[',']'的字串,判斷字串是否有效。
有效字串需滿足:
左括號必須用相同型別的右括號閉合。
左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。
示例:
輸入: "()"
輸出: 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