设计一个算法判断输入的表达式中括号(圆括号、方括号、大括号)是否配对
时间: 2024-10-14 20:06:52 浏览: 86
3.19括号配对_园括号包含吗_数据结构_
设计这样一个算法通常可以采用栈数据结构来辅助解决。步骤如下:
1. 创建一个空栈 `stack`。
2. 遍历输入表达式的每个字符:
a. 如果遇到左括号 ( 或 [ 或 {),将其压入栈中。
b. 如果遇到右括号 )、] 或 }:
i. 检查栈顶元素是否与其相匹配。例如,')' 对应 '(', ']' 对应 '[', '}' 对应 '{'。
ii. 匹配成功则弹出栈顶元素;如果不匹配,则返回错误,因为括号不配对。
c. 如果遍历结束,而栈非空,说明还有未关闭的左括号,返回错误。
3. 遍历结束后,如果栈为空,说明所有括号都已配对,返回 true;否则返回 false。
下面是伪代码形式:
```python
def is_balanced(expression):
stack = []
pairs = {"(": ")", "[": "]", "{": "}"}
for char in expression:
if char in pairs:
stack.append(char)
elif not stack or stack[-1] != pairs[char]:
return False
return not stack
```
阅读全文