class Solution:
def isValid(self, s: str) -> bool:
# 定义一个字典用于匹配左右括号
bracket_map = {')': '(', '}': '{', ']': '['}
# 初始化一个空栈
stack = []
# 遍历字符串
for char in s:
# 如果是左括号,压入栈中
if char in bracket_map.values():
stack.append(char)
# 如果是右括号
elif char in bracket_map:
# 检查栈是否为空或者栈顶的左括号是否与当前右括号匹配
if not stack or stack[-1] != bracket_map[char]:
return False # 不匹配,返回False
stack.pop() # 匹配,弹出栈顶元素
else:
# 遇到非括号字符,根据题目描述这实际上不应出现,但这里可选择忽略或处理
continue # 或者是 return False,具体看题目要求是否允许非括号字符
# 遍历结束后,如果栈为空,说明所有括号都已正确闭合
return not stack