難度:easy
給定一個只包括 '('裹刮,')'赠叼,'{'嘴办,'}'户辞,'['刃榨,']' 的字符串,判斷字符串是否有效。
有效字符串需滿足:
左括號必須用相同類型的右括號閉合搬卒。
左括號必須以正確的順序閉合失暴。
注意空字符串可被認為是有效字符串古戴。
示例 1:
輸入: "()"
輸出: true
示例 2:
輸入: "()[]{}"
輸出: true
示例 3:
輸入: "(]"
輸出: false
示例 4:
輸入: "([)]"
輸出: false
示例 5:
輸入: "{[]}"
輸出: true
解析:
這里的相關標簽是:棧,字符串
.
使用棧的原因是:棧的先進后出的性質(zhì) 正好適配于 這種配對問題述暂。
代碼:
def isValid(s):
n = len(s)
judge = []
pair = {'(': ')', '[': ']', '{': '}'}
for i in range(n):
if pair.get(s[i]) != None:
judge.append(s[i])
else:
if len(judge)!=0 and pair[judge[-1]]== s[i]:
judge.pop()
else:
return False
if len(judge)==0:
return True
else:
return False