实验三,python列表与元组,编写程序,判断一个带小括号的表达式中中括号是否匹配
时间: 2024-10-20 16:19:15 浏览: 31
在Python中,你可以通过栈数据结构来检查一个字符串中括号的匹配情况。对于列表(`[]`)和元组(`()`),它们的闭合字符分别是右方括号 `]` 和右圆括号 `)`。我们可以遍历字符串,每当遇到左方括号 `[` 或 `(` 就将其压入栈中,遇到右方括号 `]` 或 `)` 时就从栈顶取出一个字符进行比较。如果遇到关闭的方括号而栈为空,或者打开的是左方括号但顶部的字符是右方括号,那么表示括号不匹配。
下面是一个简单的函数实现这个功能:
```python
def check_brackets(expression):
stack = []
opening_brackets = ['[', '(']
closing_brackets = [']', ')']
for char in expression:
if char in opening_brackets:
stack.append(char)
elif char in closing_brackets:
if not stack or stack.pop() != opening_brackets[closing_brackets.index(char)]:
return False
return not stack # 如果还有剩余元素,则说明有一对或多对括号未闭合
# 测试例子
expression1 = "[()]"
expression2 = "({[})"
expression3 = "[{"
print(check_brackets(expression1)) # 输出: True
print(check_brackets(expression2))
阅读全文