20. 有效的括号
这是我刷了几天题以来第一道标着“简单”同时我也觉得还算简单的题,蛋疼
class Solution(object):
def isValid(self, s):
"""
:type s: str
:rtype: bool
"""
stack = []
# 抄别人的,本来我是用if一个个判断的,好傻
mapping = {
')': '(',
']': '[',
'}': '{'
}
for char in s:
# 考虑stack为空的情况,否则stack[-1]会报错
if char in mapping and stack: # if stack 等同于 if stack != []
if mapping[char] == stack[-1]:
stack.pop() # 弹出list最后一个元素,要记住
else:
return False
else:
stack.append(char)
return not stack # python没有!stack这种写法!
# 等同于下面
# 如果stack不为空,则说明还有没配对的括号
# if stack:
# return False
# else:
# return True