📌  相关文章
📜  使用堆栈检查表达式(格式良好)中的平衡括号的Python程序(1)

📅  最后修改于: 2023-12-03 15:06:55.823000             🧑  作者: Mango

使用堆栈检查表达式(格式良好)中的平衡括号的Python程序

简介

这是一个使用堆栈检查表达式(格式良好)中的平衡括号的Python程序。该程序可以检测一个表达式是否有平衡的括号,即左括号和右括号是否一一对应。

程序说明

该程序使用堆栈来实现括号的匹配检查。具体的实现方法如下:

  1. 创建一个空栈。
  2. 对于表达式中的每个字符,逐一进行扫描。
  3. 如果当前字符是左括号,将其压入栈中。
  4. 如果当前字符是右括号,从栈顶弹出一个字符,与当前字符进行匹配。
  5. 如果匹配成功,继续扫描表达式。如果匹配失败,说明该表达式中存在不平衡的括号,退出程序。
  6. 当扫描完整个表达式后,如果栈为空,则说明该表达式中所有括号都是平衡的,否则说明存在不平衡的括号。

代码如下:

def is_balanced(expression):
    stack = []
    for char in expression:
        if char in "([{":
            stack.append(char)
        elif char in ")]}":
            if not stack:
                return False
            if char == ")" and stack[-1] == "(":
                stack.pop()
            elif char == "]" and stack[-1] == "[":
                stack.pop()
            elif char == "}" and stack[-1] == "{":
                stack.pop()
            else:
                return False
    return not stack
使用方式

该程序可以作为一个函数使用,输入一个表达式,返回一个布尔值表示该表达式是否有平衡的括号。可以在其他程序中调用该函数来进行检查。

示例代码如下:

if is_balanced("((3 + 4) * 5) / (2 + 3)"):
    print("The expression is balanced.")
else:
    print("The expression is not balanced.")

输出:

The expression is balanced.