python编写程序,判断一个带小括号的表达式中中括号是否匹配
时间: 2024-10-14 22:15:07 浏览: 9
在Python中,编写一个程序来检查带小括号的表达式中中括号是否匹配,你可以采用栈数据结构。这里是一个基本的思路:
1. 创建两个空栈,一个用于存储左圆括号'('、'[',另一个用于存储右圆括号')'、']'。
2. 遍历输入的字符串,对于每个字符,如果遇到左括号,如'('或'[',就将其压入相应的栈。
3. 如果遇到右括号,如')'或']',则从第一个栈弹出一个左括号并与当前右括号比较。如果它们不匹配(例如,'(' 和 ')' 或 '[' 和 ']'),说明括号不匹配,返回False。
4. 遍历结束后,如果有任何一个栈非空,说明还有未匹配的左括号,返回False。如果两个栈都为空,表示所有括号都已配对,返回True。
下面是一个简单的实现示例:
```python
def is_balanced(expression):
left_parens = ['(', '[']
right_parens = [')', ']']
stack = []
for char in expression:
if char in left_parens:
stack.append(char)
elif char in right_parens:
if not stack or left_parens.index(stack.pop()) != right_parens.index(char):
return False
return not stack # 返回True表示括号平衡,反之则不平衡
# 测试例子
expression1 = "[(1+2)*3]"
expression2 = "(1+2)*)"
print(is_balanced(expression1)) # 输出:True
print(is_balanced(expression2))
阅读全文