首页 > 技术文章 > Leetcode--有效的括号(20)

shawn-young 2020-03-03 21:52 原文

题目描述:

 

 

 

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

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

推荐阅读