求串S中出现的第一个最长重复子串及其位置。

例题算法
求串S中出现的第一个最长重复子串及其位置。
"重复子串":SubString(S,i,len)==SubString(S,j,len)&1<=i如S='aaaaaa'的最长重复子串为T='aaaaa'
其算法有很多种时间复杂度最低为平方级,最高可达4次方,在此介绍种用求next函数的算法其时间复杂度可达平方级
next[j]!=0表明在第J个字符前存在长度为next[j]-1重复子串(但是从第一个字符开始,所以本题算法为求子串的next函数值)
由此,算法的基本思想为:求串pat=SubString(S,i,StrLength(S)-i+1)的next函数值,i=1,2,...,StrLength(S)-1 从中求 最大值

 

你可能感兴趣的:(数据结构)