c语言字符串括号,C ++中的有效括号字符串

假设我们有一个表达式。该表达式带有一些括号;我们必须检查括号是否平衡。括号的顺序是(),{}和[]。假设有两个字符串。“()[(){()}]”有效,但“ {[}]”无效。

为了解决这个问题,我们将遵循以下步骤-遍历表达式,直到用尽为止如果当前字符是用(,{或[

如果当前字符是右括号,如},}或],则从堆栈弹出,然后

检查弹出的括号是否对应于

当前字符,那很好,否则,那是不平衡的。

字符串用尽后,如果堆栈中还剩下一些起始括号,则说明该字符串不平衡。

例子(C ++)

让我们看下面的实现以更好地理解-#include 

#include 

using namespace std;

bool isBalancedExp(string exp) {

stack stk;

char x;

for (int i=0; i

if (exp[i]=='('||exp[i]=='['||exp[i]=='{') {

stk.push(exp[i]);

continue;

}

if (stk.empty())

return false;

switch (exp[i]) {

case ')':

x = stk.top();

stk.pop();

if (x=='{' || x=='[')

return false;

break;

case '}':

x = stk.top();

stk.pop();

if (x=='(' || x=='[')

return false;

break;

case ']':

x = stk.top();

stk.pop();

if (x =='(' || x == '{')

return false;

break;

}

}

return (stk.empty());

}

int main() {

string expresion = "()[(){()}]";

if (isBalancedExp(expresion))

cout <

else

cout <

}

输入项"()[(){()}]"

输出结果This is Balanced Expression

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值