首先,将第一与第二个NEXT分别写为0,1.现在来求第三个,如果你求的这个字符的前一个字符或几个连续字符(要以你所求字符的前一个字符为结束字符)与第一个字符或从第一个字符开始连续的几个字符相同,那么就要有相同字符的个数加1,求出来的结果就是你所求字符NEXT值!
如下题:
序号 0 1 2 3 4 5 6 7 8 9 10
a b c a a b b a b c d
next 0 1 1 1 2 2 3 1 2 3 4
第0号与第1号字符的NEXT值分别为0,1.第2号字符的NEXT值为:
此时看第1号字符,它与第0号字符不相同,则它的NEXT值为1,再看第4号字符:第3号字符为a,它与第0号字符相同,则为1+1=2;第6号与第10号:6号前是5号,虽然它与第0号字符不相同,但是45两号的字符ab与01两号的字符相同,故为2+1=3;10号前是9号,789是abc,012也是abc,故为3+1=4!
懂否?