如何用KMP算法实现字符串匹配搜索(c++实现)

 时间:2024-10-15 07:01:28

1、问题描述:有两个字符串:txt[] = "AABAACAADAABAABA" pat[] = "AABA"找到pat在txt当中的匹配位置。输出匹配后第一个字符的位置。匹配位置为0,9, 12

如何用KMP算法实现字符串匹配搜索(c++实现)

3、KMP算法的基本思想:即使当我们的模板检测不匹配时,我们也能够知道模板下一次匹配时主串的一些信息。例子如下:当“AAAA”匹配时,我们知道了主串的一些信息,下一步的匹配只需要检测模板的第四个元素是不是匹配。

如何用KMP算法实现字符串匹配搜索(c++实现)

5、那么如何如何计算lps[]数组呢,我们采用如下算法:首先lps[0]永远等于0;初始化len =0,i=0, len表示对应字符pat[i]对应的合适前缀长度。增加i,即i=i+1;如果pat[i]等pat[len]的话,len=len+1; lps[i]=len;如果pat[i]不等于pat[len],len=lps[len-1],直到pat[i]等于pat[len],将len赋值给lps[i]。注意len减小到0之后不再减小

如何用KMP算法实现字符串匹配搜索(c++实现)如何用KMP算法实现字符串匹配搜索(c++实现)如何用KMP算法实现字符串匹配搜索(c++实现)如何用KMP算法实现字符串匹配搜索(c++实现)如何用KMP算法实现字符串匹配搜索(c++实现)
  • 如何进行对等网的测试?
  • 在Notepad++查看文件关联
  • win7鼠标右键菜单清理 win7右键菜单设置
  • 如何批量重命名文件
  • OpenWrt路由器怎样使用cloud torrent插件?
  • 热门搜索
    重庆武隆旅游攻略 桂林旅游必去景点 舟山旅游景点 团购旅游 洛阳旅游年票官网 旅游景区管理 佳木斯旅游 雪乡旅游攻略 如皋旅游 全国旅游一卡通