窒息的题……
直接贴一篇别人的题解:串(string)
代码
#include<cstdio>
#include<cstring>
using namespace std;
char s[100005];
int main(){
int t,n;
scanf("%d",&t);
while(t--){
memset(s,0,sizeof(s));
scanf("%d%s",&n,s);
int num=0,i=0,j=n-1,f=0,k=0,m=0;
for(int i=0;i<n;i++) if(s[i]==s[i+1]) num++;
for(int i=0;i<n;i+=2) if(s[i]==s[i+2]) k++;
for(int i=1;i<n;i+=2) if(s[i]==s[i+2]) m++;
if(k==(n+1)/2-1 && m==n/2-1 && n%2==1){
printf("-1\n");
continue;
}
if(n==num+1){
printf("-1\n");
continue;
}
while(i<=j){
if(i==j&&s[i]!=s[i-1]&&num==n-3){
printf("-1\n"),f=1;
break;
}
if(s[i]!=s[j]&&i!=j){
printf("1\n"),f=1;
break;
}
i++,j--;
}
if(!f) printf("2\n");
}
return 0;
}
爆零祭-2018.3.18