Scott's Blog

学则不固, 知则不惑

0%

算法题: 有效的括号

📌 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。

注意:有效字符串需满足:

左括号必须用相同类型的右括号闭合。

左括号必须以正确的顺序闭合。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def isValid(s):
"""注意理解栈的原理"""
stack = []
dict = {"]":"[", "}":"{", ")":"("}
for char in s:
# 查 value,如果出现左括号,将其放到栈中
if char in dict.values():
stack.append(char)
# 如果是出现了右括号、若栈是空的或者
# 根据右边括号找到对应的左括号不等于栈顶元素,返回 False
elif char in dict.keys():
if stack == [] or dict[char] != stack.pop():
return False
# 其他情况,返回 False
else:
return False
return stack == []