//栈括号
#include<iostream>
#include<string>
using namespace std;
const int MAX_SIZE= 100;//定义栈的最大容量
//栈
typedef struct stack
{
int top;
int data[MAX_SIZE];
}stack;
stack S;
//入栈
void Solution()
{
string s;
cin>>s;
int len=s.length();//输入字符串的长度
int tag=1;//标记是否匹配
int i=0;//迭代器
S.top=0;
while(i<len&&tag)
{
if(s[i]=='('||s[i]=='['||s[i]=='{')
S.data[S.top++]=s[i];
if(s[i]==')')
if(S.data[S.top-1]=='(')
{
S.top--;
}
else
tag=0;
if(s[i]==']')
if(S.data[S.top-1]=='[')
{
S.top--;
}
else
tag=0;
if(s[i]=='}')
if(S.data[S.top-1]=='{')
{
S.top--;
}
else
tag=0;
i++;
}
if(!tag)
{
cout<<"括号不匹配"<<endl;
}
}
int main()
{
Solution();
system("pause");
}
栈括号的处理
最新推荐文章于 2023-04-24 21:24:10 发布