I. Where Am I?
题目描述
给出一个长度为n(1<=n<=100)的字符串,现从中连续的取出一个长度为k的子序列,问k要为多少才能保证取出来的子序列在原字符串中是独一无二的。
题目分析
因为n的数值范围很小,不妨直接取出各种子序列,与原字符串进行比较。
代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
char s[100][101],str[101];
scanf("%s",str);
for(int i=1;i<=100;i++){//长度
int p1=0;
bool same=0;
for(int j=0;j<=n-i+1;j++){
if(same)
break;
int p2=0;
for(int k=j;k<j+i;k++){
s[p1][p2++]=str[k];
}
p1++;
for(int k=0;k<p1-1;k++){
if(!strcmp(s[k],s[p1-1]))
same=1;
}
}
if(!same){
printf("%d\n",i);
break;
}
}
}