#7 WA
查看原帖
#7 WA
1032267
GCSG01楼主2023/11/18 16:37
#include<bits/stdc++.h>
using namespace std;
string c;
int n,a,b,ans,flag;
int main()
{
	cin>>n>>c;
	int x=n-1,p=0;
	for(int i=0;i<=x;i++)
	{
		if(c[i]!=c[x])p=1;
		x--;
	}
	if(p==0)
	{
		cout<<"Yes";
		return 0;
	}
	if(n==1)ans=1,flag=1;
	if(n%2==1&&flag==0)
	{
		if(c[0]=='B'||c[n-1]=='A')
			ans=1,flag=1;
		else ans=0;
		flag=1;
	}
	for(int i=0;i<n&&flag==0;i++) 
	    if(c[i]=='A')a++;
		else b++;
	if(a==n||b==n&&flag==0)
		ans=1,flag=1;
	if(n/2%2==0&&flag==0)
		if(c[0]=='A'&&c[n/2-1]=='B'&&n!=4)
			ans=1,flag=1;
		if(c[n/2]=='B'&&c[n-1]=='A')
			ans=1,flag=1;
	if(n/2%2!=0&&flag==0)
	{
		if(c[n/2-1]!=c[n/2]&&flag==0)
			ans=0,flag=1;
		else 
		{
			int j=n-1,flag=0;
			for(int i=0;i<=n/2-1;i++)
				if(c[i]==c[j])continue;
				else 
					if((c[i]=='B'&&c[i-1]=='A')||(c[j]=='B'&&c[j+1]=='A')&&flag==0)continue;
					else ans=0;
			ans=1;
		}
		flag=1;
	}
	if(ans==1)cout<<"Yes";
	else cout<<"No";
	return 0;
} 
2023/11/18 16:37
加载中...