以前写的代码,先搬运到上来。先贴代码,后面补说明
int KMP(char * t, char * p)
{
int i = 0;
int j = 0;
int* pNext = new int[(int)strlen(p)]{-1};
GetNext(p,pNext);
while (i< (int)strlen(t) && j< (int)strlen(p))
{
if (j == -1 || t[i] == p[j])
{
i++;
j++;
}
else
j = pNext[j];
}
if (j == strlen(p))
return i - j;
else
return -1;
}
GetNext函数void GetNext(char * p, int * next)
{
next[0] = -1;
int i = 0, j = -1;
while (i< (int)strlen(p))
{
if (j == -1 || p[i] == p[j])
{
++i;
++j;
next[i] = j;
}
else
j = next[j];
}
}
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
文章标题:C++实现KMP字符串匹配算法-创新互联
本文URL:https://www.cdcxhl.com/article24/dejpje.html
成都网站建设公司_创新互联,为您提供Google、域名注册、网站收录、网站建设、动态网站、小程序开发
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联