字符串匹配KMP算法讲解KMP算法引子什么是KMP算法KMP算法为什么是正确的各类写法代码模板
假设我们解决这样一个问题:有字符串S与模式串P,想知道模式串P在字符串S的什么位置,应如何解决?解决子串匹配问题字符串S:“abcabcabd”模式串P:“abcabd”采用暴力(Brute Force)算法,即朴素算法的做法:依次比较每个字符,直到串的每个字符都一一吻合。算法执行流程:朴素算法中,一旦匹配不成功,要到目标串下一位,再和模式串从头匹配,流程相对繁琐。很明显,例子中的2与3步骤是可以省略的,关键在于,能否保存两个串中,相同部分的字符,每次移动模式串时,直接忽略其中字符不相同