今天看了kpl算法求nextval函数值,看了许多大佬的求法,今天我就来整理一下这些方法
1.首先要求nextval函数值我们就必须得求得next值
这里我们先来举个例子:
(aa)b(aa)它的长前缀值是2,
(abc)d(abc)它的长前缀值是3,
(a)bcdej(a)它的长前缀值是1,
模式串t=abcabaa的next值
t(j) a b c a b a
长前缀值 0 0 0 1 2 1 1
把长前缀值后移一位得next值
next(j) -1 0 0 0 1 2 1
next值出来就很好求nextval值了,我们只需记住同变不同则不变
例如,b的next值是0,则把b与a做比较,b≠a即不变,所以它的nextval值=b的next值
a的next值是1,则将a与第一位元素做比较,第一位元素也是a,则nextval的值=a的next的值,所以
nextval -1 0 0 -1 0 2 1
如有错误请指正,我也不是很透彻感觉
2020-11-07
最新推荐文章于 2024-04-14 17:48:07 发布