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

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

有关字符串匹配的最有效的算法。

其算法复杂度为两个字符串的长度之和(m+n)。

与C语言版本想比,这个版本只是使用C++语法,功能还是被封装在函数中。

#include 
#include
#include
#include
using namespace std;inline void NEXT(const string &T, vector
&next){ //按模式串生成vector,next(T.size()) next[0]=-1; for(int i=1; i
= 0) j = next[j];//递推计算 if(T[i] == T[j+1]) next[i] = j+1; else next[i] = 0; }}inline string::size_type COUNT_KMP(const string &S, const string &T){ //利用模式串T的next函数求T在主串S中的个数count的KMP算法 //其中T非空, vector
next(T.size()); NEXT(T, next); string::size_type index, count=0; for(index=0; index

转载于:https://www.cnblogs.com/tigerisland/p/7564922.html

你可能感兴趣的文章
OpenCV——IplImage
查看>>
Nginx ssl证书部署
查看>>
springMVC文件上传(转)
查看>>
Java多线程之Lock的使用
查看>>
PhpStorm集成xdebug进行断点调试
查看>>
htmlentities,html_entity_decode,addslashes
查看>>
C#如何删除数组中的一个元素
查看>>
Intellij Idea创建的第一个JavaWeb程序
查看>>
Ambiguous mapping found
查看>>
python(33)多进程和多线程的区别
查看>>
matlab中常用见的小知识点
查看>>
pip升级或卸载安装的包的方法
查看>>
spring ioc原理(看完后大家可以自己写一个spring)
查看>>
ios NSString format 保留小数点 float double
查看>>
Java自带Log
查看>>
如何生成唯一的server Id,server_id为何不能重复?
查看>>
核心J2EE模式 - 截取过滤器
查看>>
对Class.getResourceAsStream和ClassLoader.getResourceAsStream方法所使用的资源路径的解释...
查看>>
深度理解 Virtual DOM
查看>>
[源][osg][osgBullet]osgBullet例子介绍
查看>>