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

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

KMP的详解见:https://segmentfault.com/a/1190000008575379

主要难点在于Next数组的理解,KMP是不需要回溯的匹配算法。

1 #include
2 #include
3 #include
4 #define MAXSIZE 100 5 using namespace std; 6 /*为方便理解算法,使用全局变量减少参数传递*/ 7 string T,P; 8 vector
Next(MAXSIZE); 9 10 void getNext();//获取带匹配字符串P的Next数组 11 int KMP();//返回匹配结果,若P为T的子串则返回匹配成功的T的下标,反之返回-1 12 13 int main()14 {15 cout<<"Text : ";16 getline(cin,T);//读取整行字符串,包括空格 17 cout<<"Part : ";18 getline(cin,P);19 int index=KMP();20 printf("index = %d\n",index);21 return 0;22 }23 24 int KMP()25 {26 int i=0,j=0;27 int n=T.size(), m=P.size();//s.size()的返回值是unsigned类型,必须转为整型变量 28 getNext();29 while(i

 

转载于:https://www.cnblogs.com/yinhao-ing/p/10523233.html

你可能感兴趣的文章
mysql之引擎、Explain、权限详解
查看>>
推荐-zabbix原理篇
查看>>
160809329 仲兆鹏 3
查看>>
HDOJ1013【Digital Roots】
查看>>
HDOJ1078 FatMouse and Cheese【动态规划】-----武科大ACM暑期集训队选拔赛2题
查看>>
zoj 1492(最大团)
查看>>
利用redis中列表数据类型构建共享消息队列
查看>>
解决“"连接池已满"”
查看>>
网络爬虫2:使用crawler4j爬取网络内容
查看>>
POI导出
查看>>
javacpp-opencv图像处理之2:实时视频添加图片水印,实现不同大小图片叠加,图像透明度控制,文字和图片双水印...
查看>>
java基础程序题
查看>>
Linux下安装http访问的svn
查看>>
Vue Router过渡动效
查看>>
RT600 ROM Boot流程
查看>>
tarjan算法
查看>>
二叉树
查看>>
CozyRSS开发记录17-Html2Xaml
查看>>
使用pygal 做chart图的经验分享
查看>>
内存泄露调试之 visual leak detector 工具【转】...
查看>>