#include<bits/stdc++.h>
using namespace std;
char a[200010];
typedef pair<int,int> P;
vector<P> q;
int vis[30];
int main()
{
ios::sync_with_stdio(false);
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
memset(vis,0,sizeof(vis));
q.clear();
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
if(n%2==1)
{
cout<<"-1"<<endl;
continue;
}
for(int i=1;i<=n/2;i++)
{
if(a[i]!=a[n-i+1])
{
q.push_back(make_pair(i,n-i+1));
}else
{
// cout<<a[i]<<" "<<a[n-i+1]<<endl;
vis[a[i]-'a']++;
}
}
int cut=0;
int sum=0,mmax=0;
char x;
for(int i=0;i<=26;i++)
{
sum+=vis[i];
// cout<<i<<" "<<vis[i]<<endl;
if(vis[i]>mmax)
{
mmax=vis[i];
x = i+'a';
}
}
if(mmax>sum-mmax)
{
cut=mmax;
mmax-=(sum-mmax);
// cout<<mmax<<endl;
}else
{
cut=sum/2+sum%2;
mmax=0;
}
for(int i=0;i<q.size();i++)
{
if(mmax)
{
// cout<<a[q[i].first]<<" "<<x<<" "<<a[q[i].second]<<endl;
if(a[q[i].first]!=x&&a[q[i].second]!=x)
{
mmax--;
}
}else break;
}
if(!mmax) cout<<cut<<endl;
else cout<<"-1"<<endl;
}
return 0;
}
典中典,血泪史
最新推荐文章于 2024-06-11 20:37:13 发布