一.KMP算法介绍 KMP算法与前面的MP算法一脉相承,都是充分利用先前匹配的过程中已经得到的结果来避免频繁回溯.回顾一下MP算法,如下图的模式串偏移,当前模式字符串P的左端的p0与目标字符串T中tj位置对齐.从左向右逐个进行比较,发现 pi 处的字符a 与 tj+1 处字符b发生失配.同时也表明 P(p0,p1,...,pi-1) 与 T'(tj,tj+1,...,tj+i-1) 是完全匹配的,这一部分子串在图中用字母u标示出.由于发生失配,随即移动模式字符串并进行下一轮的比较.此时,很自然地…