您的位置:首页 > 其它

hrbust-1170-语法检查-括号匹配【栈应用】

2018-02-05 22:26 232 查看
hrbust-1170-语法检查-括号匹配【栈应用】

检索括号匹配

学会多行输入,每行检测方式。

还有栈。【先进后出】【后进先出】

#include<bits/stdc++.h>
using namespace std;
char a[10000][10000];
int main()
{
while(scanf("%s",&a[0])!=EOF)
{
int i=0;
while(1)
{
i++;
scanf("%s",a[i]);
if(strcmp(a[i],"Ctrl+Z")==0)
break;
}
int flag=1;
stack<char>s[2];
for(int j=0; j<=i; j++)//i+1行
{
for(int k=0; a[j][k]!='\0'; k++)
{
if(a[j][k]=='(')
{
s[0].push(a[j][k]);
continue;
}
if(a[j][k]=='{')
{
s[1].push(a[j][k]);
continue;
}
if(a[j][k]==')'&&!s[0].empty())
{
s[0].pop();
continue;
}
if(a[j][k]==')'&&s[0].empty())
{
flag=0;
continue;
}
if(a[j][k]=='}'&&!s[1].empty())
{
s[1].pop();
continue;
}
if(a[j][k]=='}'&&s[1].empty())
{
flag=0;
continue;
}

}
}

if(flag)
{
if(s[0].empty()&&s[1].empty())
cout<<"Right"<<endl;
else
cout<<"Wrong"<<endl;
}
else
cout<<"Wrong"<<endl;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: