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

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

#include
using namespace std;#include
typedef struct{char ch[1000002] = {' '};int length;}sstring;//定义ADTsstring来表示字符串的性质 char temp[1000002]={' '}; void cinstring(sstring &s,char temp[]);//输入主串和模式串,实现字符串下标表示位置 void getnext(sstring t,int next[]);//实现模式串的回溯 int kmpcompare(sstring s, sstring t,int next[]);//使用KMP算法进行匹配,返回pos,通过pos的数值判断是否匹配成功int main(){ sstring s,t; int flag=0; cin>>temp; cinstring(s,temp); cin>>temp; cinstring(t,temp);//分别读入主串和模式串 int next[t.length+1]={0}; getnext(t,next); kmpcompare(s,t,next); flag = kmpcompare(s,t,next);//用flag表示匹配成功后的位置或者匹配不成功的0; cout<
t.length) pos = i-t.length; return pos; }

  1.初步体会到了更优算法对数据量大的测试的重要作用。

       2.一开始我将temp[1000002]定义在主函数内,结果不能运行,定义成全局变量之后问题迎刃而解。原因如何我已发邮箱问老师,知晓结果后再做总结。

       3.在理解求next[j]算法时,我体会到了用画图法分析有助于直观地认识算法本质,这对于理解复杂想法作用极大。

转载于:https://www.cnblogs.com/AUlikeHER32/p/10708266.html

你可能感兴趣的文章
“模态”对话框和“后退”按钮
查看>>
关于javascript实现的网站页面侧边悬浮框"抖动"问题
查看>>
linux_命令格式和命令提示符
查看>>
Cocos2d-X-3.0之后的版本的环境搭建
查看>>
when case group by 的用法集合
查看>>
洛谷P1908 逆序对
查看>>
转义符
查看>>
poj 1019
查看>>
asp.net mvc上传文件
查看>>
bitmq集群高可用测试
查看>>
主成分分析(PCA)原理详解
查看>>
短信验证接口网址
查看>>
Geohash距离估算
查看>>
Demon_背包系统(实现装备栏,背包栏,可以切换装备)
查看>>
记录:一次数据库被恶意修改配置文件的问题
查看>>
redis 持久化
查看>>
解决Jupyter notebook[import tensorflow as tf]报错
查看>>
Windows平台下使用ffmpeg和segmenter实现m3u8直播点播
查看>>
python网络画图——networkX
查看>>
ubuntu16.04文件形式安装mongodb
查看>>