#include <iostream>
#include <mutex>
using namespace std;
int vis[10010];
int solve() {
int n;
string s;
cin >> n >> s;
if (n == 2 && s[0] != s[1]) {
return -1;
// return ;
}
// s = "" + s;
// int len = s.length();
if (n % 2 == 1) {
int mx = (n - 3) / 2;
for (int i = 1; i <= mx+1; i++) {
for (int j = 0; j < n; j++) {
if (s[j] == s[(j + i) % n]) {
// cout << i - 1 << '\n';
return i-1;
}
}
}
} else {
int mx = (n - 4) / 2+1;
for (int i = 1; i <= mx; i++) {
for (int j = 0; j < n; j++) {
if (s[j] == s[(j + i) % n]) {
// cout << i - 1 << '\n';
return i-1;
}
}
}
}
return -1;
}
int main() {
int t;
cin >> t;
while (t--) {
int res = solve();
cout<<res<<'\n';
}
}
// 64 位输出请用 printf("%lld")
看了大佬的题解后做的,好像可以转换为找最近相同字符的距离,如果没有相等的只能输出-1.



京公网安备 11010502036488号