题意:
ps: 空串合法
代码:
#include<iostream>
#include<algorithm>
#include<stack>
using namespace std;
int main()
{
int n;
cin>>n;
cin.get();
while(n--)
{
string s="";
getline(cin,s);
if(!s.size()) cout<<"Yes"<<endl; //空串
else
{
stack<char> stk;
for(int i=0;i<s.size();i++)
{
if(s[i]=='(' || s[i]=='[') //左括号入栈
stk.push(s[i]);
else //右括号
{
if(stk.empty()) //栈为空时,加入右括号必定为No
{
stk.push(s[i]); //入栈再break,否则为空串输出Yes
break;
}
else if(s[i]==')' && stk.top()=='(') stk.pop();//出栈
else if(s[i]==']' && stk.top()=='[') stk.pop();
}
}
if(stk.size()) cout<<"No"<<endl;
else cout<<"Yes"<<endl;
}
}
return 0;
}