KMP详解

Posted wolfbeyond

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了KMP详解相关的知识,希望对你有一定的参考价值。

引入

    字符串有一种基本的操作,叫做查找。当你在淘宝上搜索时,就是在查找;当你在百度上搜索时,也是在查找;当你在点子字典上输入一个英文单词的时候,也是在查找。

    在C++的string库中有一个查找的函数,即str1.find(str2).其中,str1指的是被查找的母串,str2指的是要查找的子串。例如下面一段程序

string str1="Hello World";
string str2="Hel";
printf("%d", str1.find(str2));

     这个程序的返回值是0.也就是说,str1.find(str2)返回的是str2在str1中第一次出现的位置。

注意事项

    在开始之前,我们约定一下几个事项:

  •     母串表示被查找的字符串,用strmo表示
  •     子串表示要查找的字符串,用strch表示
  •     我们用i来表示strmo中的第i个字符,用j来表示strch中的第j个字符,使读者更容易理解。

古老的字符串查找方法

    暴力的字符串查找方法就是直接模拟人的思想,不断地在母串中一个字符一个字符地查看与子串是否匹配,直到匹配成功或母串结束为止。

以上是关于KMP详解的主要内容,如果未能解决你的问题,请参考以下文章

kmp算法详解

kmp 算法详解

数据结构KMP算法配图详解(超详细)

疫情封校在宿舍学习KMP算法详解(next数组详解)附例

kmp算法详解

KMP算法详解