难度:2
一看难度是2知道不是很难,用栈比较方便,然后一个需要注意的地方就是,空也为正确,那么输入就可能为空,所以输入的时候要读入一整行。
#include <bits/stdc++.h>
#define fi first
#define se second
#define pb push_back
#define all(x) (x).begin(), (x).end()
using namespace std;
typedef long long ll;
typedef vector<int> vi;
typedef pair<int, int> pa;
int main() {
int t;
cin >> t;
getchar();
while (t--) {
string s;
getline(cin, s);
stack<char> st;
for (auto &p : s) {
if (p == '(' || p == '[') st.push(p);
else if (p == ')' || p == ']') {
if (!st.empty() && ((p == ')' && st.top() == '(') || (p == ']' && st.top() == '['))) st.pop();
else st.push(p);
}
}
cout << (st.empty() ? "Yes" : "No") << endl;
}
return 0;
}