Python匹配括号代码
时间: 2024-09-25 13:01:52 浏览: 44
在Python中,检查字符串中的括号是否匹配是一个常见的任务,通常用于验证表达式的语法。可以使用栈数据结构来解决这个问题。下面是一个简单的递归函数示例,它会遍历字符串并跟踪左括号(如'('、'['和'{')和右括号(如')'、']'和'}'),如果发现配对不一致则返回False:
```python
def is_balanced(s):
brackets = {
")": "(",
"]": "[",
"}": "{",
")[": "(", # 特殊情况处理,例如 "()[]{}" 这样的嵌套括号
"]{" : "[",
"}(" : "{"
}
stack = []
for char in s:
if char in brackets.values(): # 遇到左括号,压入栈
stack.append(char)
elif char in brackets.keys(): # 遇到右括号
if not stack or stack.pop() != brackets[char]: # 检查是否能匹配
return False # 匹配失败
return not stack # 如果栈为空,说明所有括号都已匹配,返回True;否则返回False
# 使用示例
print(is_balanced("()")) # True
print(is_balanced("([)]")) # False
```
这个函数的核心原理是,每遇到一个右括号,就检查栈顶的元素是否与其成对,若不成对则返回False。最后,如果没有剩余的左括号在栈里,则表示所有的括号都已经正确匹配。
阅读全文