在《大话数据结构》里的第一个串算法是KMP算法,对于这个算法,网上有很多文章,但是都是各有各的说法,有点:一千个人看哈姆雷特有一千个哈姆雷特!!!然后头天晚上 看了大致,有点摸不着头脑next数组是怎么生成的,K值又是怎么计算的!脑子休息白天一天,晚上有点儿大彻大悟了!以下是我的个人理解next数组的演算,我尽可能的把自己的想法说的简单易懂,不足之处还请见谅!!!
这里需要注意的是:
比较的子子串是i ~ i-1 ,并且当上一个值不为1的时候,下一个值一次去对称,有对称则+1,没有对称则回头和第一个字符对称,如果回头和第一个字符有对称则为2,反之为1
这个是回头,一定要注意,要回头!
说的不好,主要个人理解!表达不清晰!仅供参考!后面会补充