萌新求助,全WA
查看原帖
萌新求助,全WA
358793
想不好名字楼主2021/8/19 08:23
#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<stack>

using namespace std;

int n;bool flag;
string st;
stack < char > s;
int main()
{
	cin>>n;
	getchar();
	while(n--)
	{
		flag=0;
		cin>>st;
		int len = st.size();
		if(st[0]==')' or st[0]==']')
		{
			cout<<"No"<<endl;continue;
		}
		for (int i = 0; i < len; ++i)
      {
          if (st[i] != '(' && st[i] != ')' && st[i] != '[' && st[i] != ']' )
		  st.erase(i,1);
      }
		for(int i=0;i<len;++i)
		{
			//st.erase(i,1);
			if(st[i]=='[' or st[i]=='(')
			{
				s.push(st[i]);
			}
			else
			if(st[i]==']')
			{
				char cc=s.top();
				if(cc=='[')
				{
					s.pop();
				}
				else
				{
					flag=1;
					cout<<"No"<<endl;
					break;
				}
			}
			else
			if(st[i]==')')
			{
				char cc=s.top();
				if(cc=='(')
				{
					s.pop();
				}
				else
				{
					flag=1;
					cout<<"No"<<endl;
					break;
				}
			}
		}
		if(!flag)
		cout<<"Yes"<<endl;
	} 
	
}
2021/8/19 08:23
加载中...