博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
KMP算法
阅读量:6961 次
发布时间:2019-06-27

本文共 418 字,大约阅读时间需要 1 分钟。

KMP算法的思想是

主串S 和模式串W,判断W是否匹配S

如果主串S在i位置与W串在j位置出现不匹配的情况的时候,利用已经得到的匹配把W串尽量右移动一段距离。

用伪代码写,如下:

int kmp(string S, string W){

while(i<S.length){

if(S[i]==W[j]) {

if(j==W.length-1) return i-j;

i++; j++;

} else {

if(next[j]>-1){

j=next[j];

} else {

i=i-j+1;

j=0;

}

}

这里我们一般记next[0]=-1;

next[1]=0

当j>=2时,

找到最大的k,使得

W[0]~W[k-1] == W[j-k]~W[j-1],

然后赋值next[j]=k

转载于:https://www.cnblogs.com/gaoqichao/archive/2012/10/30/2747242.html

你可能感兴趣的文章
win8.1不支持LOL 升级需谨慎
查看>>
oracle创建用户
查看>>
不间断向左滚动代码
查看>>
CentOS服务器安全设置
查看>>
rhel和centos软件包管理
查看>>
我的友情链接
查看>>
select 数据绑定
查看>>
EMC PowerPath
查看>>
解决Win7与2003/XP网络访问错误问题
查看>>
关于android:windowNoTitle的问题
查看>>
随机修改nginx端口脚本及思路
查看>>
我的友情链接
查看>>
关于Office365\2016\2013:客户端Excel2016后无法打开xls\xlsx
查看>>
linux下实现ssh免密登录
查看>>
安装jar到本地maven仓库
查看>>
雅虎天气城市代码
查看>>
nginx网站基本配置过程
查看>>
用Python访问SqlServer,window和linux下的不同操作
查看>>
离群点、杆杠值、强影响点整合到一幅图
查看>>
服务器TIME_WAIT和CLOSE_WAIT详解和解决办法
查看>>