思路: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;
        }
        
    }
}