KMP算法:
KMP (Knuth-Morris-Pratt) 算法是一种用于字符串搜索的算法,可以在一个文本串S内查找一个词W的出现位置。
基本思想是,当子串与目标字符串不匹配时,其已知足够的信息能确定下一步的搜索不会导致目标字符串的漏检。这样,算法就不会进行无效的检查。
下面是KMP算法的步骤:
- 构造一个”部分匹配表”(也称为 “失败函数”)。这是一个数组,对于给定的查找词,表中的每个元素都包含了当匹配失败时查找词应该跳转的位置。
- 使用这个表来进行字符串搜索。当在文本串中发生匹配失败时,可以直接跳过前面已知不会匹配的部分。