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个字符,使读者更容易理解。

古老的字符串查找方法

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

猜你喜欢

转载自www.cnblogs.com/Wolfbeyond/p/9484410.html