KMP算法 串模式识别 用nextval[j]改进next[j]

用nextval[]改进next[]

还有,代码真美,看了好久微笑

 

#include<stdio.h>
#define MAXSIZE 100
#include<iostream>
using namespace std;typedef struct
{char data[MAXSIZE];int length;
}SqString;void StrAssign(SqString &s,char cstr[])
{int i;for(i=0;cstr[i]!='\0';i++)s.data[i]=cstr[i];s.length=i;
}void GetNextval(SqString t,int nextval[])
{int j=0,k=-1;nextval[0]=-1;while(j<t.length){if(k==-1||t.data[j]==t.data[k]){j++;k++;if(t.data[j]!=t.data[k]){nextval[j]=k;}else nextval[j]=nextval[k];}else k=nextval[k];}}int KMPIndex1(SqString s,SqString t)
{int nextval[MAXSIZE],i=0,j=0;GetNextval(t,nextval);while(i<s.length&&j<t.length){if(j==-1||s.data[i]==t.data[j]){i++;j++;}elsej=nextval[j];}if(j>=t.length)return (i-t.length);else return -1;}int main()
{SqString t,p;StrAssign(t,"aaadaaadaaaad");StrAssign(p,"aaaad");cout<<KMPIndex1(t,p)<<endl;
}

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/561446.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win10台式机一根网线连接笔记本wifi网络

我的笔记本和台式机都是win10&#xff0c;笔记本通过家里的路由器连的无线网&#xff0c;台式机没法连接无线&#xff0c;还有一条网线 笔记本打开网络适配器 右键属性 勾选共享里面的 允许其他网络用户通过此计算机的internet连接来连接 家庭网络选择笔记本和台式机之间的局…

蓝桥杯单片机DS18B20代码注释及部分时序图

蓝桥杯单片机蓝桥杯单片机DS18B20代码注释及部分时序图 #include<STC15F2K60S2.H> #include<intrins.h>#define uchar unsigned char #define uint unsigned int sbit DQP1^4;uchar code tab[]{0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90,0XBF,0XFF}; u…

蓝桥杯单片机stc15f2k60s2 中断函数代码模板注释

用到哪些寄存器&#xff1f; 中断使能寄存器// EA1&#xff08;总使能开&#xff09;&#xff0c;ET01&#xff08;T0中断允许&#xff09; 定时器/计数器控制寄存器TCON// TH0和TL0设定值确定时间间隔&#…

redhat下的iptables和firewalld 笔记

iptables命令怎么用&#xff1f; 网上看见的一个不错的图。 使用iptables命令配置的防火墙规则默认会在系统下一次重启时失效&#xff0c;如果想让配置的防火墙策略永久生效&#xff0c;还要执行保存命令&#xff1a; service iptables save 怎么理解firewalld&#xff1f; …

redhat挂载镜像软件包

挂载&#xff08;mounting&#xff09;是指由操作系统使一个存储设备&#xff08;诸如硬盘、CD-ROM或共享资源&#xff09;上的计算机文件和目录可供用户通过计算机的文件系统访问的一个过程。 本质&#xff1a;针对某一设备, 分析出其文件系统结构, 并根据其文件系统类型调用…

chcon和semanage fcontext的坑

chcon后不能restorecon,不然就default_t:s0&#xff0c;samba_share_t没了 chcon semanage fcontext restorecon

Windows底层窗口的实现———学习笔记

基本概念 SDK 软件开发工具包&#xff08;Software Development Kit&#xff09;&#xff0c;一般都是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。 API Windows操作系统提供给应用程序编程的接口&#xff08;Appl…

数据链路层差错检验循环冗余码过程图示

计算机网络数据链路层差错检验循环冗余码过程

如何把项目改成微服务项目_【日记】148微服务项目第18天

没有人天生就强、就弱或意志坚定。是后来才变强&#xff0c;后来才意志坚定。命运不在人身上&#xff0c;而在人四周。01一句话日记2020/9/702Day148每日总结关于图片上传&#xff0c;这个太常见了朋友圈&#xff0c;微头条都涉及到图片的上传以前我们也编写过对应的demo-当前项…

启动马达接线实物图_电工外出接单从事配电柜接线、调试工作的三个要领

点击上方电工电气学习&#xff0c;关注并星标专业的电工电气领域自媒体&#xff0c;不容错过欢迎转发朋友圈&#xff0c;欢迎文末留言电工朋友在时间允许在情况下外出接单&#xff0c;一来可以提高自己的收入&#xff0c;再者还可以练练手艺。同时&#xff0c;外部环境不是我们…

anaconda3 tensorflow安装踩坑记(WIN10+tensorflow带gpu版本)

我看的网课讲解的视频用的是带gpu版本的tensorflow1.4.0&#xff0c;使用pip install tensorflow-gpu1.4.0&#xff0c;但是如果想直接用之前那个命令的话要使用anaconda老一些的版本&#xff0c;最新的版本不支持&#xff0c;点击这里下载anaconda 5.2.0最新的版本的会报错&am…

萤石云设备下线是什么导致的_什么原因导致化工设备腐蚀?腐蚀防护措施有哪些?...

关键词&#xff1a;化工设备腐蚀&#xff0c;化工设备腐蚀原因&#xff0c;化工设备腐蚀防护在化工行业中腐蚀破坏到处可见&#xff0c;腐蚀事故频频发生。这除了因腐蚀本身所具有的自发性质外&#xff0c;很大程度上是因为人们对腐蚀的危害性认识不足&#xff0c;对腐蚀防护的…

记一次win10下pycharm用tensorboard可视化不显示的问题解决

路径中有中文导致无法访问 使用pycharm中的Terminal命令行 tensorboard --logdir所在的目录 出现了 然后发现说是路径中不能存中文 于是 cmd命令行中因为没切换硬盘 我的数据存在d盘&#xff0c;但是我的cmd在c盘 localhost:6006不行 因为主机名本身就不是localhost…

如何安装tensorflowGPU环境搭建(不报AVX2的警告)

TensorflowGPU版本无报错的安装安装pycharm安装Anaconda5.2.0装Visual Studio下载tensorflow&#xff0c;更新包&#xff0c;然后安装下载tensorflow更新一些包&#xff0c;不然会报错安装tensorflow gpu版本的包CUDA的下载和安装下载CUDA9.1安装pycharm 官网版本教育版本即可…

一道简单却易混淆的高等数学求极限题目

lim⁡x→∞(11x)x2ex\lim_{x \to \infty}\frac{(1\frac{1}{x})^{x^2}}{e^x} x→∞lim​ex(1x1​)x2​ 正确的解法&#xff1a; 一种错误的解法&#xff1a; 这是同学问我的&#xff0c;错在了哪里&#xff1f; lim⁡x→∞(11x)x2是否可以等于lim⁡x→∞ex?\lim_{x \to \in…

8086汇编求一组正整数{0x1223,0x1234,0x1434,0x2345,0x3412,0x1712}中的最大数并存在变量MAX中

编程求一组正整数{0x1223,0x1234,0x1434,0x2345,0x3412,0x1712}中的最大数并存在变量MAX中 DATAS SEGMENT X DW 1254H,1234H,1434H,2345H,3412H,1712H MAX DW ? DATAS ENDS STACKS SEGMENT;此处输入堆栈段代码 STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS ST…

html内容封装为一个对象_技术赋能还是内容为王,哪一个才是短视频创作的关键?...

12月23日&#xff0c;广东高校“校园发光者工作坊”计划宣讲活动走进华南师范大学&#xff0c;与同学们交流短视频创作的经验与心得。南方都市报N视频内容总监陈成效向同学们介绍了视频制作的“守破离”&#xff0c;以新闻报道为例&#xff0c;讲述如何通过预判和设计&#xff…

Java毕业设计—springboot健身房管理系统

一、项目背景介绍&#xff1a; 随着人们生活水平的提高和健康意识的增强&#xff0c;健身行业逐渐兴起并迅速发展。而现代化的健身房管理系统已经成为健身房发展的必备工具之一。传统的健身房管理方式已经无法满足现代化健身房的需求&#xff0c;需要一种更加高效、智能、安全…

C/C++二叉树前序遍历,中序遍历,后序遍历

二叉树的先序遍历&#xff0c;中序遍历&#xff0c;后序遍历 #include <iostream>using namespace std;typedef struct BTNode {char data;struct BTNode* lchild;struct BTNode* rchild; }BTNode;void preorder(BTNode* p) {if(p!NULL){cout<<p->data;preord…