使用棧數(shù)據(jù)結(jié)構(gòu):
- 遇到左括號(hào),需要壓棧减江。
- 遇到右括號(hào)染突,判斷棧頂是否和當(dāng)前右括號(hào)匹配;若不匹配則返回false辈灼,否則匹配彈出棧頂份企。
- 最后判斷棧是否為空;若為空則合法巡莹,否則不合法司志。
class Solution:
# @return a boolean
def isValid(self, s):
stack = []
dict = {"]":"[", "}":"{", ")":"("}
for char in s:
if char in dict.values():
stack.append(char)
elif char in dict.keys():
if stack == [] or dict[char] != stack.pop():
return False
else:
return False
return stack == []