Yes
c++代码如下: //如果提交,需要将后面的system("pause");去掉
#include<iostream> #include<string> #include<string.h> using namespace std; bool IsMatch(char *str){ char stack[10001]; int top = -1,i; int num = strlen(str); for (i = 0; i < num; i++){ switch (str[i]){ case '(':stack[++top] = str[i]; break; case '[':stack[++top] = str[i]; break; case ')':if (top < 0 || stack[top--] != '(') return false; break; case ']':if (top < 0 || stack[top--] != '[') return false; break; } } return top == -1; } int main(){ char str[101][10001]; int i, n; cin >> n; cin.get(); for (i = 0; i < n; i++) { cin.get(str[i], 10001); //可将这两行代码换为cin.getline(str[i],10001),即将cin.get()删去 cin.get(); } for (i = 0; i < n; i++){ if (IsMatch(str[i])) cout << "Yes" << endl; else cout << "No" << endl; } system("pause"); return 0; }
