设为首页 加入收藏

TOP

括号配对问题 栈实现 (一)
2014-11-23 23:20:56 来源: 作者: 【 】 浏览:5
Tags:括号 配对 问题 实现
[ html]
括号配对问题
时间限制:3000 ms | 内存限制:65535 KB
难度:3
描述 现在,有一行括号序列,请你检查这行括号是否配对。
输入第一行输入一个数N(0
[(])
(])
([[]()])样例输出No
No
Yes
括号配对问题
时间限制:3000 ms | 内存限制:65535 KB
难度:3
描述 现在,有一行括号序列,请你检查这行括号是否配对。
输入第一行输入一个数N(0
[(])
(])
([[]()])样例输出No
No
Yes
[cpp]
#include
#include
#include
using namespace std;
int main()
{
int test;
//freopen("D://ACMInput/input.txt","r",stdin);
scanf("%d",&test);
while(test--)
{
stack number;
char c[10050];
scanf("%s",c);
int flag=0;
if(strlen(c)%2==1)
{
printf("No\n");
continue;
}
while(!number.empty())
{
number.pop();
}
for(int i=0; i
{
if(c[i]=='['||c[i]=='(')
{
number.push(c[i]);
}
else if(c[i]==']')
{
if(!number.empty())
{
char c=number.top();
number.pop();
if(c=='[')
{
continue;
}
else flag=1;
}
else flag=1;
}
else if(c[i]==')')
{
if(!number.empty())
{
char c=number.top();
number.pop();
if(c=='(')
{
continue;
}
else flag=1;
}
else flag=1;
}
if(flag==1) break;
}
if(flag==1) printf("No\n");
else printf("Yes\n");
}
return 0;
}
#include
#include
#include
using namespace std;
int main()
{
int test;
//freopen("D://ACMInput/input.txt","r",stdin);
scanf("%d",&test);
while(test--)
{
stack number;
char c[10050];
scanf("%s",c);
int flag=0;
if(strlen(c)%2==1)
{
printf("No\n");
continue;
}
while(!number.empty())
{
number.pop();
}
for(int i=0; i
{
if(c[i]=='['||c[i]=='(')
{
number.push(c[i]);
}
else if(c[i]==']')
{
if(!number.empty())
{
char c=number.top();
number.pop();
if(c=='[')
{
continue;
}
else flag=1;
}
else flag=1;
}
else if(c[i]==')')
{
if(!number.empty())
{
char c=number.top();
number.pop();
if(c=='(')
{
continue;
}
else flag=1;
}
else flag=1;
}
if(flag==1) break;
}
if(flag==1) printf("No\n");
else printf("Yes\n");
}
return
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C翻转 下一篇POJ 2488 A Knight's Journey

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: