您的位置:首页 > 其它

假设表达式中包含三种括号 圆括号方括号大括号 设计一个算法用顺序栈判断表达式中的括号是否正确配对

2017-09-24 12:50 1006 查看
栈的应用 对于acmer这算是水题了吧

stack <char> Q;
char s[11000];
int main()
{
int T,i;
Q.push('#');
scanf("%d",&T);
while(T--)
{
scanf("%s",s);
int len=strlen(s);
for(i=0;i<len;i++)
{
if(s[i]!='['&&s[i]!='('&&s[i]!=']'&&s[i]!=')'&&s[i]!='{'&&s[i]!='}')
continue;
if(s[i]=='[' || s[i]=='('||s[i]=='{')
Q.push(s[i]);
else if((s[i]==']' && Q.top()=='[') || (s[i]==')' && Q.top()=='(')||(s[i]=='}' && Q.top()=='{'))
Q.pop();
else
Q.push(s[i]);
}
if(Q.top()=='#')
printf("Yes\n");
else
printf("No\n");
while(Q.top()!='#')
Q.pop();

}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  括号匹配
相关文章推荐