博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c语言括号匹配问题不用栈,括号匹配问题(不用栈,用数组)
阅读量:6620 次
发布时间:2019-06-25

本文共 755 字,大约阅读时间需要 2 分钟。

现在,有一行括号序列,请你检查这行括号是否配对。

输入

第一行输入一个数N(0

输出

每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No

样例输入

3

[(])

(])

([[]()])

样例输出

No

No

Yes

#include

#include

#include

char stack[10010];

int main()

{

int top=0,len,i,N,flag=0;

char a[10010];

memset(a,0,sizeof(a));

scanf("%d",&N);

while(N--)

{

flag=0;

top=0;

scanf("%s",a);

len=strlen(a);

memset(stack,0,sizeof(stack));

for(i=0;i

{

if(a[i]=='('||a[i]=='[')

{

stack[++top]=a[i];

}

else

{

if(top==0)

{

flag=1;

break;

}

else

{

if(a[i]==')')

{

if(stack[top]=='(')

stack[top--];

else

{

flag=1;

break;

}

}

if(a[i]==']')

{

if(stack[top]=='[')

stack[top--];

else

{

flag=1;//这里不要输出,放在后面统一输出,否则可能造成多输出的情况

break;

}

}

}

}

}

if(top==0&&flag==0) //这里必须要有双重判断

printf("Yes\n");

else if(top!=0||flag==1)

printf("No\n");

}

return 0;

}

转载地址:http://rbcpo.baihongyu.com/

你可能感兴趣的文章
【投资】欧盟区块链创业公司投资超500万欧元
查看>>
优傲机器人:人机协作机器人助推电子制造业智慧升级
查看>>
IBM利用“沃森”超级电脑帮助员工对抗癌症
查看>>
「镁客·请讲」珍为科技周朔鹏:打造科技产品传播平台,对接智能制造产业上下游...
查看>>
使用NHibernate作为ORM容易碰到的问题
查看>>
服务器集中检测Cacti
查看>>
快速构建Windows 8风格应用34-构建Toast通知
查看>>
WCF简单教程(6) 单向与双向通讯
查看>>
Linux下多线程编程简介(一)
查看>>
RHEL6入门系列之八,常用命令1
查看>>
安全防范之彻底击破恶意网页
查看>>
安全防护 守好家门 也谈端口的开关
查看>>
浅谈ADC产品32位和64位之区别
查看>>
IBM Call Home Function
查看>>
Linux系统自带的密码生成器——mkpasswd
查看>>
Android应用程序框架层和系统运行库层日志系统源代码分析
查看>>
JRE环境查看工具
查看>>
MySQL中进程显式%的情况分析
查看>>
Java网络编程从入门到精通(7):用getHostAddress方法获得IP地址
查看>>
微软企业级加解密解决方案MBAM客户端部署
查看>>