Leetcode--有效的括号(20)

题目描述:

 

 

 

主要思路: 这题思路比较清晰,直接想到了用栈来做。若输入部分是’(‘、’[‘ 或者'{',则直接入栈,否则比较栈顶元素与输入是否匹配。若最后栈非空,则说明存在未匹配到的符号,返回false。

 1 class Solution:
 2     def isValid(self, s: str) -> bool:
 3         if len(s)%2 != 0:
 4             return False
 5         dic = {')':'(', ']':'[', '}':'{'}
 6         stack = []
 7         for word in s:
 8             if word in dic:
 9                 if stack == []:
10                     return False
11                 if stack[-1] == dic[word]: 
12                     stack.pop()
13                 else: 
14                     return False
15             else:
16                 stack.append(word)
17         return not stack

一个自己做题时没有注意到的点:配对的一对括号可以用字典的方式存储!

posted @ 2020-03-03 21:52  eltShawn  阅读(132)  评论(0)    收藏  举报