ZCMU 暑期练习赛【识别】

识别 

Time Limit:  1 Sec    Memory Limit:   256 MB
Submission:12     AC:11     Score:100


Description

DD 现在有一个长度为 n 的字符串,DD 认为如果所有长度为 x 的子串互不重复,则 x 这个值是可识别的,他现在想知道最小的可识别值是多少

Input

第一行一个整数表示 n

第二行一个长度为 n 的字符串

对于 100% 的数据,1 <= n <= 1000

Output

输出 x 的最小值

Samples

input:
6 xyzxyz
output:
4

#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;
        }
    }
}
原文地址:https://www.cnblogs.com/jackwang-sparrow/p/13330778.html