求助
查看原帖
求助
314280
张语诚ZYC楼主2021/3/13 09:44
#include<bits/stdc++.h>
using namespace std;
char a[51],b[51];
char data[6][3]= {
	{'(','(',')'},
	{'(',')','('},
	{'(',')',')'},
	{')','(','('},
	{')','(',')'},
	{')',')','('},
};
inline int read_int() {
	int s=0,w=1;
	char ch=getchar();
	while(ch<'0'||ch>'9') {
		if(ch=='-') {
			w=-1;
		}
		ch=getchar();
	}
	while(ch>='0'&&ch<='9') {
		s=s*10+ch-'0';
		ch=getchar();
	}
	return s*w;
}
queue<char> q;
bool core() {
	int len=strlen(b);
	for(int i=0; i<=len; i+=1) {
		if(b[i]=='(') {
			q.push(b[i]);
		} else if(b[i]==')') {
			if(q.size()>0) {
				q.pop();
			} else {
				while(q.size()>0) {
					q.pop();
				}
				return false;
			}
		}
	}
	if(q.size()>0) {
		while(q.size()>0) {
			q.pop();
		}
		return false;
	} else {
		while(q.size()>0) {
			q.pop();
		}
		return true;
	}
}
int main() {
	int N=read_int();
	for(int i2=1; i2<=N; i2+=1) {
		int flag=0;
		scanf("%s",a);
		for(int i=0; i<6; i+=1) {
			for(int j=0; j<strlen(a); j+=1) {
				if(a[i]=='A') {
					b[i]=data[i][0];
				}
				if(a[i]=='B') {
					b[i]=data[i][1];
				}
				if(a[i]=='C') {
					b[i]=data[i][2];
				}
			}
			if(core()==true){
				flag=1;
				break;
			}
		}
		if(flag==1){
			puts("YES");
		}else{
			puts("NO");
		}
		flag=0;
	}
	return 0;
}
2021/3/13 09:44
加载中...