题目链接
题目大意:
括号是否匹配
分析:
栈的应用即可,但要注意!!空串。只能用getline读取,cin不读取回车,无法读取空串!!
#include <bits/stdc++.h>
using namespace std;
int main() {
freopen("i.txt","r",stdin);
freopen("o.txt","w",stdout);
int n;
string str;
cin >> n;
getchar();
while(n--) {
bool flag = true;
stack<char> stack1;
getline(cin,str);
for(auto i : str) {
if(i=='(' || i=='[')
stack1.push(i);
else {
char ch;
if(!stack1.empty()) ch = stack1.top();
else { flag = false; break; }
if(i==')') { if (ch != '(') flag = false; }
else if(i==']') { if(ch!='[') flag = false; }
stack1.pop();
}
}
if(!stack1.empty()) flag = false;
if(str.length()==0) flag = true;
if(flag) cout << "Yes" << endl;
else cout << "No" << endl;
}
}