题目提交点
思路:
运用栈的思想,遇到‘(’ 和 ‘]’ 入栈,遇到’(’、’['出栈。
代码:
#include<iostream>
#include<stack>
#include<string>
using namespace std;
stack<char> stk, blank;
int main() {
int T;
scanf("%d\n", &T);
while (T--) {
char ch;
bool ans = true;
while ((ch = getchar()) != '\n') {
if (!ans) continue;
if (ch == '(' || ch == '[') stk.push(ch);
else if (stk.empty()) ans = false;
else if (ch == ')' && stk.top() == '(') stk.pop();
else if (ch == ']' && stk.top() == '[') stk.pop();
}
if (ans && stk.empty()) puts("Yes");
else {
puts("No");
stk = blank;
}
}
return 0;
}