【题解-信息学奥赛一本通】1355:字符串匹配问题(strs)
题目1355字符串匹配问题(strs)题目描述字符串中只含有括号 (),[],,{},判断输入的字符串中括号是否匹配。如果括号有互相包含的形式从内到外必须是,(),[],{}例如。输入: [()] 输出:YES而输入([])([)]都应该输出NO。输入第一行为一个整数n表示以下有多少个由括号组成的字符串。接下来的n行每行都是一个由括号组成的长度不超过255的字符串。输出在输出文件中有n行每行都是YES或NO。时空限制1s / 64MB样例输入5 {}{}()()[][] {{}}{{}}(())(())[[]][[]] {{}}{{}}(())(())[[]][[]] {}{[]}(())(())[[()]][[]] }{{[]}(())(())[[()]][[]]样例输出YES YES YES YES NO代码#includebits/stdc.husingnamespacestd;constintN1610;intn;string s;intstk[N*2];inttt;boolf;intmain(){cinn;while(n--){cins;tt0;ftrue;for(inti0;is.size();i){switch(s[i]){case:stk[tt]1;break;case(:if(tt0stk[tt]1)ffalse;elsestk[tt]2;break;case[:if(tt0stk[tt]2)ffalse;elsestk[tt]3;break;case{:if(tt0stk[tt]3)ffalse;elsestk[tt]4;break;case:if(tt0stk[tt]1)tt--;elseffalse;break;case):if(tt0stk[tt]2)tt--;elseffalse;break;case]:if(tt0stk[tt]3)tt--;elseffalse;break;case}:if(tt0stk[tt]4)tt--;elseffalse;break;}if(!f)break;}if(tt0||!f)puts(NO);elseputs(YES);}return0;}结果