#include<iostream>
#include<cstring>
#include<stack>
#include<algorithm>
#include<cstdio>
using namespace std;
int main()
{
char str[110000];
int k,i;
int t;
cin>>t;
while(t--)
{
memset(str,0,sizeof(str));
stack<char> s;
/*while(!s.empty())
s.pop();*/
cin>>str;
k=strlen(str);
if(str[0]==']'||str[0]==')'||k%2!=0)
{
cout<<"No"<<endl;
continue;
}
for(i=0;i<k;i++)
{
if(str[i]=='('||str[i]=='[')
{
s.push(str[i]);
}
else
{
if(s.empty())
{
cout<<"No"<<endl;
break;
}
else if((s.top()=='('&&str[i]==')')||(s.top()=='['&&str[i]==']'))
{
s.pop();
}
else
s.push(str[i]);
}
}
if(i<k)
continue;
if(s.empty())
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
return 0;
}
南阳OJ 2 括号配对问题
最新推荐文章于 2020-02-16 12:17:20 发布