Python代码括号匹配问题 在文字处理软件或编译程序设计时,常常需要检查一个字符串或一个表达式中的括号是否相匹配?
时间: 2024-02-25 07:54:36 浏览: 55
以下是Python代码实现括号匹配问题的算法:
```python
def is_matched(expression):
stack = []
for char in expression:
if char in "({[":
stack.append(char)
elif char in ")}]":
if not stack:
return False
current_char = stack.pop()
if current_char == "(" and char != ")":
return False
if current_char == "[" and char != "]":
return False
if current_char == "{" and char != "}":
return False
return not stack
# 测试样例
print(is_matched("(){}[]")) # True
print(is_matched("{[()]}")) # True
print(is_matched("{[()]}(")) # False
```
该算法使用了栈的数据结构来实现括号匹配。时间复杂度为O(n),其中n为字符串的长度。
阅读全文