问题:
题目来源:力扣(LeetCode)
难度:简单
分析:
栈操作
解决方法:
1:集合
class Solution():
def isValid(self, s):
#建栈
stack = []
#建个字典,由右括号找左括号
mapping = {")": "(", "}": "{", "]": "["}
#遍历
for char in s:
#当遇到右括号
if char in mapping:
#弹出栈顶元素,注意判断栈非空,如果空了,说明右边比左边多括号了
top = stack.pop() if stack else '#'
#如果栈顶元素和右括号对应的左括号不同,说明不匹配
if mapping[char] != top:
return False
else:
stack.append(char)
return not stack
复杂度:O(n)