Submit
Description
DD 现在有一个长度为 n 的字符串,DD 认为如果所有长度为 x 的子串互不重复,则 x 这个值是可识别的,他现在想知道最小的可识别值是多少Input
第一行一个整数表示 n
第二行一个长度为 n 的字符串
对于 100% 的数据,1 <= n <= 1000
Output
输出 x 的最小值Samples
input: 6 xyzxyz output: 4 Submit
#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; string s,a[1005]; bool pd(int len) { int i,j; int po=0; for(i=1;i<=s.length();++i) { a[i]=""; } for(i=0;i<s.length();++i) { po++; if(len+i<=s.length()) { for(j=i;j<i+len;j++) { a[po]+=s[j]; } } else { break; } } sort(a+1,a+po+1); for(i=1;i<=po;i++) { if(a[i]==a[i+1]) { return 0; } } return 1; } int main() { int n,i; scanf("%d",&n); cin>>s; for(i=1;i<=s.length();++i) { if(pd(i)) { cout<<i<<endl; break; } } }