首页 > 其他 > 详细

括号匹配问题——栈

时间:2017-11-26 10:47:44      阅读:217      评论:0      收藏:0      [点我收藏+]

南阳理工学院oj题解

 

//括号匹配问题

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<stack>
using namespace std;
int main()
{
int k, flag = 1;
char c,*q;
char s[10010];
scanf("%d",&k);
getchar();
for (int i = 0; i < k; i++)
{
stack<char>a;
flag = 1;
int j = 0;
while (scanf("%c", &c)!=EOF&&c!=‘\n‘)
{
s[j++] = c;
}
for (int i = 0; i < j; i++)
{
if (s[i] == ‘(‘ || s[i] == ‘[‘)
{
a.push(s[i]);
}
else if (s[i] == ‘)‘ || s[i] == ‘]‘)
{
if (a.empty())
{
flag = 0;
break;
}
if (s[i] == ‘)‘&&a.top() == ‘(‘)
a.pop();
else if (s[i] == ‘]‘&&a.top() == ‘[‘)
a.pop();
else
{
flag = 0;
break;
}
}
}
if (flag == 1)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}

括号匹配问题——栈

原文:http://www.cnblogs.com/marybubble/p/7898326.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!