版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Fiverya/article/details/88814316
假设一个算术表达式可以包含三种括号:“(”和“)”,方括号“[”和“]”,及花括号“ { ”和“ } ”,且这三种括号可嵌套使用。试设计算法判断给定表达式中所含括号是否配对出现。
#include<iostream>
#include<queue>
using namespace std;
int main()
{
queue<char>s;
char x,i=1;
double a=0;
while((x=getchar())!='\n'&&i!=0)
{
s.push(x);
if(x=='{'||x=='['||x=='(') {a+=x/(++i);}
else if(x=='}'||x==']') {a-=(x-2)/(i--);}
else if(x==')') {a-=(x-1)/(i--);}
}
if(a==0)
cout<<"括号配对"<<endl;
else cout<<"括号不配对"<<endl;
}