链接:https://ac.nowcoder.com/acm/contest/393/A
来源:牛客网
找出连续相同最大的部分,这样可以保证 最长公共前缀 和 最长公共后缀 都是最大的。
#include<stdio.h>
#include<string.h>
#define N 200020
char a[N],b[N];
int maxi(int a,int b)
{
return a>b?a:b;
}
int main()
{
int len,i,max,sum;
scanf("%s%s",a,b);
max=0;
sum=0;
len=strlen(a);
for(i=0;i<len;i++)
{
if(a[i] == b[i])
sum++;
else
{
max=maxi(max,sum);
sum=0;
}
}
printf("%d
",max*max+2*max);
return 0;
}