I and OI
Past...

母串:S 子串:T

extend[i]=LCP(S[i..n],T)

next[i]=LCP(T[i..n],T)

假设extend[1..k]已计算出,现计算extend[k+1]

P=max{I+extend[I]-1} (I=1..k)

并令使P取最大值的Ia

则有

S[a..p]=T[1..p-a+1]

è      S[k+1..p]=T[k-a+2,p-a+1]

 

L=next[k-a+2]

那么从Tk-a+2位起有L位与T[1..L]相同

如图所示:

K+L<P,那么不需比较即可知extend[k+1]=L

K+LP,则P-K=Len 即为已知的匹配长度,且T[1..Len]一定与S[k+1..P]匹配

那么从S[p+1]T[Len+1]开始匹配,得到extend[k+1](同时更新a)

posted on 2011-09-25 17:22  exponent  阅读(254)  评论(0编辑  收藏  举报