题目:http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=2
被strlen()坑了(自己太菜> <),许久没用它,写的时候:l = strlen(br) - 1;。。。。但纠正以后还是WA了,我觉得自己代码没啥毛病(就当AC了吧。。):
#include <iostream> #include <string.h> // oj上不加这个会CE using namespace std; #define M 10001 int main() { char br[M], s[M]; int t, l, i, flag; cin >> t; while (t--) { cin >> br; l = strlen(br); flag = i = 0; if (br[l] == '(' || br[l] == '[' || l == 1) cout << "No" << endl; else { while (l > -1) { switch (br[l]) { case ')': s[i++] = br[l]; break; case ']': s[i++] = br[l]; break; case '(': switch (s[i - 1]) { case ')': i--; break; default: flag = 1; break; } break; case '[': switch (s[i - 1]) { case ']': i--; break; default: flag = 1; break; } break; } if (flag) break; l--; } if (flag) cout << "No" << endl; else cout << "Yes" << endl; } } return 0; }