思路:hash计数法
#include <iostream>
#include <cstring>
#include <unordered_map>
using namespace std;
const int INF = 2e9;
int main() {
int t;
cin >> t;
while(t--){
int n;
string s;
cin >> n >> s;
if(s.size() == 2 && s[0] != s[1]){
cout << -1 << endl;
continue;
}
s = s + s;
unordered_map<char,int> pos;
int ans = INF;
for(int i = 0;i < s.size();i++){
if(pos.find(s[i]) != pos.end()){
ans = min(ans,i - pos[s[i]] - 1);
}
pos[s[i]] = i;
}
if(ans == n - 1){
cout << -1 << endl;
}else{
cout << ans << endl;
}
}
}



京公网安备 11010502036488号