Для двух строк A и B мы определяем сходство строк как длину самого длинного префикса, общего для обеих строк. Например, сходство строк «abc» и «abd» равно 2, а сходство строк «aaa» и «aaab» равно 3. Вычислите сумму сходств строки S с каждым из ее суффиксов.
Вот мое решение...
#include<stdio.h>
#include<string.h>
int getSim(char str[],int subindex)
{
int l2=subindex
int i=0;
int count=0;
for(i=0;i<l2;i++)
if(str[i]==str[subindex])
{
count++;
subindex++;
}
else
break;
return count;
}
int main()
{
int testcase=0;
int len=0;
int sum=0;
int i=0;
char s[100000];
scanf("%d",&testcase);
while(testcase--)
{
sum=0;
scanf("%s",s);
for(i=0;i<strlen(s);i++)
if(s[i]==s[0])
{
sum=sum+getSim(s,i);
}
printf("%d\n",sum);
}
}
Как мы можем решить эту проблему, используя массив суффиксов??