括号配对问题 C语言练习
2013-12-06 18:30
225 查看
现在,有一行括号序列,请你检查这行括号是否配对.
输入
第一行输入一个数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> int main(){ char tmp[100][10000],n; int i; int ispe(char *te); scanf("%d",&n); for(i=0;i<n;i++){ scanf("%s",&tmp[i]); } for(i=0;i<n;i++){ if(ispe(tmp[i])==1){ printf("Yes\n"); } else printf("No\n"); } return 0; } int ispe(char *te){ int i,j,t1=0,t2=0; char tmp[10000],tma[10000]; for(i=0;te[i]!='\0';i++){ if(te[i]=='(' || te[i]=='['){ tmp[t1++]=te[i]; } else if(te[i] == ')'){ if(tmp[--t1] != '('){ return 0; } else tmp[t1]='\0'; } else if(te[i] == ']'){ if(tmp[--t1] != '['){ return 0; } else tmp[t1]='\0'; } else return 0; } return 1; }
相关文章推荐
- 南阳理工oj题目练习---括号配对问题
- C语言 南阳理工ACM 2 括号配对问题
- 【C语言】花括号配对问题
- ACM在线练习-括号配对问题
- C语言实现括号配对问题
- ACM在线练习-括号配对问题
- C语言 南阳理工ACM 2 括号配对问题
- ACM练习:括号配对问题
- NYOJ 题目2括号配对问题
- Num 15: NYOJ: 题目0002 : 括号配对问题 [ 栈(stack) ]
- 括号配对问题
- ny 2 括号配对问题
- 括号配对问题
- 南阳 括号配对问题
- 括号配对问题
- NYOJ - 2 - 括号配对问题(STL - stack)
- 0507 #2 NYIST 括号配对问题
- 栈的经典问题:括号配对
- nyoj 括号配对问题
- 括号配对问题