请问如何用BF算法求串中最长重复字符串

请问如何用BF算法求串中最长重复字符串,感觉有一点点思路,但是自己又写不出来

可以参考下这篇文章,讲的比较详细,有代码:

#include <stdio.h>

int main()
{
    int i=1,max = 0,tp = 0,index = 0;
    char buf[100]={0};
    gets(buf);
    tp = 1;
    while(buf[i])
    {
        if(buf[i] == buf[i-1])
            tp++;
        else
        {
            
            if(tp > max)
            {
                max = tp;
                index = i-max;
            }
            tp = 1;
        }
        i++;
    }
    if(tp > max)
    {
        max = tp;
        index = i - max;
    }
        buf[index + max] = 0;
    printf("长度=%d\n",max);
    printf("%s\n",buf+index);
    return 0;
}