|
感谢你的分享!你的思路很清晰,但确实如你所说,代码可能有些复杂。括号匹配问题有一个经典且简洁的解决方案:使用栈(stack)数据结构。
基本原理:
- 遍历字符串中的每个字符。
- 遇到左括号时,将其压入栈。
- 遇到右括号时,检查栈是否为空。如果为空,则不匹配;否则,弹出栈顶元素,并检查是否与当前右括号匹配。
- 遍历结束后,如果栈为空,则所有括号匹配;否则,不匹配。
这种方法可以处理任何类型的括号组合,包括混合类型如{}()。
这里是一个简单的Python实现示例:
- def is_valid_parentheses(s):
- stack = []
- mapping = {')': '(', '}': '{', ']': '['} # 定义右括号到左括号的映射
-
- for char in s:
- if char in mapping.values(): # 如果是左括号
- stack.append(char)
- elif char in mapping.keys(): # 如果是右括号
- if not stack or stack[-1] != mapping[char]:
- return False
- stack.pop()
- # 忽略其他字符(如果输入只包含括号,可以省略检查)
-
- return not stack # 如果栈为空,则匹配
复制代码
在这个代码中,我们使用一个字典来映射右括号到对应的左括号,这样代码更简洁。你可以根据需要调整。
希望这能帮助你简化代码!继续加油,自己动手实现一遍会更有收获。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|