栈之括号匹配

来源:互联网 发布:js base64转图片 编辑:程序博客网 时间:2024/04/28 02:34
括号匹配 Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)Total Submission(s) : 67   Accepted Submission(s) : 53Font: Times New Roman | Verdana | Georgia Font Size: ← →Problem Description现在,有一行括号序列,请你检查这行括号是否配对。 Input第一行输入一个数N(0<N<=100),表示有N组测试数据。后面的N行输入多组输入数据,每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组。数据保证S中只含有\"[\",\"]\",\"(\",\")\"四种字符 Output每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No Sample Input3[(])(])([[]()])Sample OutputNoNoYes
</pre><dd style="margin:0px; padding:0px"><pre>
#include<cstdio>#include<cstring>char str[1010];char stack[1010];int main(){int T;while(~scanf("%d",&T)) {while(T--){scanf("%s",str);int top=1;stack[top++]=str[0];for(int i=1;i<strlen(str);i++){if(str[i]==']' && stack[top-1]=='[')     top--;else if(str[i]==')' && stack[top-1]=='(')     top--;else     stack[top++]=str[i];}  printf( top==1 ? "Yes\n" : "No\n");}}return 0;} 
                                             
2 1
原创粉丝点击