NYOJ-2:括号配对问题
2017-06-21 00:38
162 查看
描述
现在,有一行括号序列,请你检查这行括号是否配对。
输入
第一行输入一个数N(0< N<=100),表示有N组测试数据。后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组。数据保证S中只含有”[“,”]”,”(“,”)”四种字符
输出
每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No
样例输入
3
[(])
(])
([])
样例输出
No
No
Yes
现在,有一行括号序列,请你检查这行括号是否配对。
输入
第一行输入一个数N(0< N<=100),表示有N组测试数据。后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组。数据保证S中只含有”[“,”]”,”(“,”)”四种字符
输出
每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No
样例输入
3
[(])
(])
([])
样例输出
No
No
Yes
#include<stdio.h> #include<stdlib.h> #include <string.h> int main() { int n,len,i,flag; int fl,fr,pl,pr; char str[10010]; scanf("%d",&n); while(n--) { flag=1; scanf("%s",str); len=strlen(str); fl=fr=pl=pr=0; for(i=0; i<len; i++) { switch(str[i]) { case '[': pl++; break; case ']': pr++; break; case '(': fl++; break; case ')': fr++; break; } if(i==0) continue; //当括号为 ( 或者为 ] 时判断其合法性 if(str[i]==']'&&str[i-1]=='(') { flag=0; break; } else if(str[i]==')'&&str[i-1]=='[') { flag=0; break; } } if(pl!=pr||fl!=fr) { flag=0; } if(flag==1) printf("Yes\n"); else printf("No\n"); } return 0; }
相关文章推荐
- NYOJ 2 括号配对问题
- NYOJ 2 括号配对问题
- NYOJ 2 括号配对问题
- NYOJ 2 括号配对问题
- NYOJ-2:括号配对问题
- NYOJ 2 括号配对问题
- 【ACM】nyoj_2_括号配对问题_201308091548
- NYOJ NO.3 括号配对问题
- NYOJ 2 括号配对问题
- NYoj 2 括号配对问题
- nyoj-2-括号配对问题
- NYOJ 2题 括号配对问题
- NYOJ 2题 括号配对问题
- NYoj 2 括号配对问题
- NYOJ-2 括号配对问题
- nyoj2 括号配对问题(栈)
- nyoj-2-括号配对问题
- NYOJ 2 括号配对问题 数据结构栈的应用
- NYOJ2 括号配对问题
- NYOJ2 括号配对问题