巨水的一道题,100的数据O(n^3)复杂度30ms过。
蛋疼的是一开始读错题,substring字串认为是subsequence子序列。字串必须连续...
没啥好说的
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#define max(a,b) ((a)>(b)?(a):(b))
#define INF 1000000005
char a[105];
int main()
{
scanf("%s",a);
int max=0;
int la=strlen(a);
for(int i=0;i<la;i++)
{
for(int j=i+1;j<la;j++)
{
int num=0;
for(int k=0;j+k<la;k++)
{
if(a[i+k]==a[j+k])num++;
else break;
}
if(num>max)max=num;
}
}
printf("%d\n",max);
return 0;
}