您的位置:首页 > 其它

You're Given a String...

2013-02-23 10:37 393 查看
1、点击打开链接

2、题目大意:给定一个字符串,求重复出现的子串的最大长度

题目很简单,但是错了好几次,最后才发现数组开小了

3、题目:

A. You're Given a String...

time limit per test
2 seconds

memory limit per test
256 megabytes

input
standard input

output
standard output

You're given a string of lower-case Latin letters. Your task is to find the length of its longest substring that can be met in the string at least twice. These occurrences can overlap (see sample test 2).

Input
The first input line contains the string. It's guaranteed, that the string is non-empty, consists of lower-case Latin letters, and its length doesn't exceed 100.

Output
Output one number — length of the longest substring that can be met in the string at least twice.

Sample test(s)

Input
abcd


Output
0


Input
ababa


Output
3


Input
zzz


Output
2


3、代码:

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int cmp(int a,int b)
{
return a>b;
}
char str[110];
int sum[11000];//错在数组开小了
int main()
{
scanf("%s",str);
//memset(sum,-1,sizeof(sum));
int n=strlen(str);
int k=0;
for(int i=0;i<n;i++)
{
for(int j=i+1;j<n;j++)
{
int ii=i;
int jj=j;
while(str[ii]==str[jj])
{
sum[k]++;
ii++;
jj++;
}
if(str[i]==str[j])
k++;
}
}
sort(sum,sum+k,cmp);
printf("%d\n",sum[0]);
return 0;
}
/*
iegdlraaidefgegiagrdfhihe

*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: