目录
概念
简述
从s中匹配t串,在BF算法中,通过指针回溯不断进行匹配,其思想是穷举。效率很低,但有些串有一定的规律,不需要回溯s串的指针,这就是KMP算法。
比如 s: aaaaaab
t: aaab
在进行比较时,如果按照BF算法,需要进行最后一次才能匹配成功。但是我们发现s和t串前几位是相同的,不需要重复比较。当然,计算机不会像人这么敏感,但是能否设计出一种算法,提高类似这种模式匹配的效率呢?答案是肯定的,这就是KMP算法。
KMP算法是由三个外国人K某、M某、P某三人提出的,所以叫KMP算法。
KMP算法原理
KMP算法的核心是针对模式串下手,提取器规律来用于加速匹配过程。
比如,上述匹配过程中s[3]≠t[3],如果按照BF算法,t指针回溯到t[0],s指针回溯到s[1],继续进行匹配,<