自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(3)
  • 收藏
  • 关注

原创 KMP模式匹配之Nextval的求法

这就是说s[Next[4]]肯定和s[4]一样不匹配,通过递推发现如果一直有这样的等于关系,那么最后会回到s[next[j]]!所以我们就要将这个Next数组进行改造,就是当s[Next[j]]=s[j]时,我们直接让Next[j]=j,反之则保留Next[j],意思就是说,当我们的第j和字符不匹配时,我们应该移动j到第Next[j]位来和数组匹配。我们又可以看到,第三位又不匹配,我们又得移动到第二位,最后才移动到第一位,这样就降低了效率。通过观察这个模式串s,我们可以发现s[Next[4]]=s[4]

2024-01-04 21:38:13 598 1

原创 KMP算法串模式匹配Next数组的简单理解

通过不断的归纳,我发现,当第j位不匹配时,如果前j-1的最长前后缀为0,则移动到第1位,如果最长前后缀(小于本身)为k,则移动到第k+1位。本文是基于归纳假设的,经验证与课本一直,没有给出证明,只是为了帮助理解,如果有错误,敬请指正,有些书本上数组是从0号开始的,本文是从1开始的,并初始化next[1]=0。我们可以由Next数组的本质来看。那么我们可以看匹配的情况,匹配的字符为ab,那我们怎么移动这个字符呢,我们现在只能移动模式串。于是,next[3]=1,即移动到第一位,那j=4呢,同理,

2024-01-04 21:09:37 463 1

原创 双向表和循环表的应用

本文定义了一个学生(Students)类 ,采用循环表和双向表对数据进行增删改查,全英语(蹩脚,只是为了装逼,但那不是重点)配置,望大佬给点建议优化算法,后续会增加排序功能。

2023-09-09 21:44:29 73 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除