NYOJ 02 括号配对问题

来源:互联网 发布:chandler bing 知乎 编辑:程序博客网 时间:2024/06/03 21:45

描述

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

输入

第一行输入一个数N(0

输出

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

样例输入


[(]) 
(]) 
([])

样例输出

No 
No 
Yes

C++

 #include<stdio.h>#include<string.h>int main(){char a[10000],l[10000];int b,c,d,e,f,g,i,m[5],n,k,ab;scanf("%d",&ab);getchar();while(ab--){    scanf("%s",a);b=strlen(a);d=-1;e=0;f=0;g=0;i=0;for(c=0;c<b;c++){    if(a[c]=='['||a[c]=='(')            {                d++;l[d]=a[c];            }            else if(l[d]==a[c]-1||l[d]==a[c]-2)            {                d--;            }            else            {                d++;a[d]=a[c];            }}if(d==-1)            printf("Yes\n");        else            printf("No\n");}return 0;}