有效的括号
题目:
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
思路:
考虑如下情况:
- 空集和奇数个数
- 如果不是按顺序出现的, 派出,例如,右括号先出现的派出
- a中的元素和b中的最后一个元素一样,那么就pop掉。
class Solution:
def isValid(self, s: str):
a = {')':'(', ']':'[', '}':'{'}
b = [None]
for i in s:
if i in a and a[i] == b [-1]:
b.pop()
else:
b.append(i)
return len(b) ==1