题解 | #有效括号序列#
有效括号序列
https://www.nowcoder.com/practice/37548e94a270412c8b9fb85643c8ccc2
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