原题
题目大意
输入一个字符串,找到一段最短的独特子字符串,输出其长度
题目分析
好吧,我真没学过kmp,还好数据规模比较友好(1 <= n <= 100),所以我就二分找答案,暴力检查了
代码
#include<cstdio>
#include<cstring>
char str[201];
int main()
{
int n;
scanf("%d",&n);
scanf("%s",str);
int l = 1,r = n;
while (l <= r)
{
bool flag = true;
// char t1[201],t2[201];
int mid = (l + r) >> 1;
for (int i = 0;i < n - mid;i++)
{
for (int j = i + 1;j < n - mid + 1;j++)
if (str[i] == str[j])
{
if (strncmp(str + i,str + j,mid) == 0)
{
flag = false;
break;
}
}
if (not flag) break;
}
if (flag) r = mid - 1;else l = mid + 1;
}
printf("%d",l);
return 0;
}