判断一东西是否只出现一次,可以用哈希,即 unordered_map 或 unordered_set
#include <bits/stdc++.h>
using namespace std;
const int N=110;
int n;
string s;
bool check(int mid){
unordered_set<string> set;
for(int i=0;i+mid-1<n;i++){
string tmp=s.substr(i,mid);
if(set.count(tmp)) return false;
set.insert(tmp);
}
return true;
}
int main(){
cin >> n >> s;
int l=1,r=n;
while(l<r){
int mid=(l+r)/2;
if(check(mid)) r=mid;
else l=mid+1;
}
cout << l << endl;
return 0;
}