码迷,mamicode.com
首页 > 其他好文 > 详细

括号匹配问题——栈

时间:2017-11-26 11:14:34      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:lib   get   eof   ace   mes   stream   nbsp   getc   iostream   

南阳理工学院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;
}

括号匹配问题——栈

标签:lib   get   eof   ace   mes   stream   nbsp   getc   iostream   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!