首页 > 编程语言 >kmp算法的个人理解

kmp算法的个人理解

时间:2023-07-26 13:24:38浏览次数:28  
标签:aa aabaa 后缀 算法 理解 kmp 字符串 最长

最长前后缀:

假设有一段字符串:
"aabaa"
则这段字符串的
前缀有:
a
aa
aab
aaba
后缀:
a
aa
baa
abaa
求最长公共前后缀的方法:
找到前缀和后缀中相同的字符串:
a
aa
其中最长的字符串为 aa
则"aabaa"这个字符串的最长公共前后缀为 aa
aa 其长度为 2
按照以上的方式逐个计算"aabaa"中的每个子字符串得到:
【0,1,0,1,2】
这个数组就是next数组,可以每个数都减一方便后续计算

 

标签:aa,aabaa,后缀,算法,理解,kmp,字符串,最长
From: https://www.cnblogs.com/laremehpe/p/17582196.html

相关文章

  • 算法刷题笔记--并查集的运用
    1、题目描述:一个城市中有两个犯罪团伙A和B,你需要帮助警察判断任意两起案件是否是同一个犯罪团伙所为,警察所获得的信息是有限的。假设现在有N起案件(N<=100000),编号为1到N,每起案件由团伙A或团伙B所为。你将按时间顺序获得M条信息(M<=100000),这些信息分为两类:D[a][b]其中[a]和[b]表示两......
  • 算法学习--并查集相关知识及例题
    一、并查集的定义二、基本操作1、初始化一开始,每个元素都是独立的集合#include<iostream>usingnamespacestd;constintmaxN=1000;intfather[maxN];intmain(){for(inti=1;i<=maxN;i++){father[i]=i;}return0;}2、查找递推版本://返......
  • 一道简单的算法题
    ///<summary>///字符串str1与str2,若str1中的各个字符经过重排后能形成str2,则返回true。///str1="sawsdfdfalsraodf";///str2="world";///rearrange(str1,str2)->true;//////提示:检查str1中的各个字符的字符数是否大于str2各个字符的字符数即可///</summary>......
  • Vue中的虚拟DOM和Diff算法
    一、虚拟DOM1.什么是虚拟DOM?一个用来表示真实DOM节点的JS对象,主要包含标签名tag、属性attrs和子元素对象children属性等。代码示例如下:<divclass="contain"id="baseNo"><h4class="item">标题</h4><pclass="item">段落内容</p>&......
  • 粒子滤波(pf)、Mean Shift、KLT算法
    粒子滤波(pf)、MeanShift算法、KLT算法都是传统的目标跟踪算法。    粒子滤波算法(ParticleFilter),也称为蒙特卡洛滤波算法,是一种基于蒙特卡洛方法的非线性滤波算法,用于在非线性系统中进行状态估计和目标跟踪。粒子滤波算法的基本思想是通过一组随机采样的粒子来近似......
  • java中关于多态的理解
    多态:是同一个行为具有多个不同表现形式或形态的能力。在代码的运用中主要是关于子类中方法的重写,实现了同一个父类接口可以进行不同子类中重写的方法publicclassGeometricOject{//父类publicdoublefindArea(){return0.0;}}publicclassCircleext......
  • rtos 理解
    1:操作系统中挂起(suspend)和阻塞(pend/block)的区别如下:一:挂起是一种主动行为,因此恢复也应该要主动完成;而阻塞则是一种被动行为,是在等待事件或资源时任务的表现,你不知道他什么时候被阻塞(pend),也就不能确切知道他什么时候恢复阻塞。而且挂起队列在操作系统里可以看成一个,而阻塞队列则......
  • 左神算法-基础06-前缀树&贪心算法
    左神算法-基础06-前缀树&贪心算法介绍前缀树何为前缀树?如何生成前缀树?例子:一个字符串类型的数组arr1,另一个字符串类型的数组arr2。arr2中有哪些字符,是arr1中出现的?请打印。arr2中有哪些字符,是作为arr1中某个字符串前缀出现的?请打印。arr2中有哪些字符,是作为arr1中某个......
  • 卖萌屋算法工程师思维导图part3—深度学习篇
    卖萌屋的妹子们(划掉)作者团整理的算法工程师思维导图,求职/自我提升/查漏补缺神器。该手册一共分为数据结构与算法、数学基础、统计机器学习和深度学习四个部分。下面是第三部分深度学习的内容~公众号后台回复【思维导图】获取完整手册(Xmind脑图源文件,学习起来更方便(ง•_•)ง编码......
  • 面试必备!卖萌屋算法工程师思维导图—统计机器学习篇
    卖萌屋的妹子们(划掉)作者团整理的算法工程师思维导图,求职/自我提升/查漏补缺神器。该手册一共分为数据结构与算法、数学基础、统计机器学习和深度学习四个部分。下面是第二部分统计机器学习的内容~公众号后台回复【思维导图】获取完整手册(Xmind脑图源文件,学习起来更方便(ง•_•)ง......