C 语言平衡括号

2025年3月17日 | 阅读 3 分钟

在本主题中,我们将学习如何在 C 语言中检查括号平衡。首先,我们将了解什么是括号。括号由下方所示的方括号表示

这些括号用于表示数学表达式。括号平衡意味着当左括号的数量等于右括号的数量时,它就是一个平衡的括号表达式。

让我们通过示例来理解。

示例 1:( 2+5 ) * 4

在上面的表达式中,有一个左括号和一个右括号,这意味着左右括号的数量相等;因此,上面的表达式是一个平衡的括号表达式。

示例 2:2 * ( ( 4/2 ) + 5 )

上面的表达式有两个左括号和两个右括号,这意味着上面的表达式是一个平衡的括号表达式。

示例 3:2 * ( ( 4/2 ) + 5

上面的表达式有两个左括号和一个右括号,这意味着左右括号的数量不相等;因此,上面的表达式是不平衡的。

检查括号平衡的算法

现在,我们将使用一个变量来检查括号平衡。该变量用于确定平衡因子。让我们考虑变量 'x'。检查括号平衡的算法如下:

步骤 1:将 x 设置为 0。

步骤 2:从左到右扫描表达式。

对于每个左括号 "(", 将 x 增加 1。

对于每个右括号 ")", 将 x 减少 1。

此步骤将继续扫描,直到 x<0。

步骤 3:如果 x 等于 0,则

"表达式是平衡的。"

否则

"表达式是不平衡的。"

让我们通过一个示例来理解上面的算法。

假设表达式是 2 * ( 6 + 5 )

Balanced Parenthesis in C

解决方案:首先,变量 x 初始化为 0。扫描从变量 '2' 开始,当遇到 '(' 时,变量 'x' 增加 1,当 x 到达表达式的最后一个符号,即 ')' 时,变量 'x' 减少 1,其最终值变为 0。我们已经在上面的算法中了解到,如果 x 等于 0,则表示表达式是平衡的;因此,上面的表达式是一个平衡的表达式。

C 语言实现

输出

Balanced Parenthesis in C