【数据结构】KMP算法:计算next与nextval函数值(图解)

news/2024/11/7 2:00:58/

:计算模式串"abaabcac"的KMP算法中next函数值

由函数定义
n e x t [ j ] = { 0 , j = 1 M a x { k ∣ 1 < k < j 且 " t 1 t 2 ⋅ ⋅ ⋅ t k − 1 " = " t j − k + 1 t j − k + 2 ⋅ ⋅ ⋅ t j − 1 " } 1 , k = 1 next[j]=\left\{ \begin{aligned} 0 , & \ j=1 \\ Max & \{k|1<k<j且"t_1t_2···t_{k-1}"="t_{j-k+1}t_{j-k+2}···t_{j-1}" \} \\ 1 , & \ k=1 \end{aligned} \right. next[j]= 0,Max1, j=1{k∣1<k<j"t1t2⋅⋅⋅tk1"="tjk+1tjk+2⋅⋅⋅tj1"} k=1
可得 next[1] = 0,其修正值 nextval[1] = 0

对模式串进行自我匹配的过程如图所示:(主串指针i,子串指针j
在这里插入图片描述
故计算得到的函数值为:

模式串abaabcac
j12345678
next[j]01122312
nextval[j]01020302

http://www.ppmy.cn/news/74402.html

相关文章

2023新版Spring6全新讲解-SpringFramework介绍

SpringFramework介绍 一、官网地址阅读 https://spring.io/ 二、Spring的发展历史 三、Spring的概述 一个Java应用层程序&#xff0c;是由许多个类组成的&#xff0c;这些类之间必然存在依赖关系&#xff0c;当项目越来越大&#xff0c;依赖关系越来越复杂&#xff0c;需要一…

使用JavaScript+Selenium玩转Web应用自动化测试

自动化测试 在软件开发过程中, 测试是功能验收的必要过程, 这个过程往往有测试人员参与, 提前编写测试用例, 然后再手动对测试用例进行测试, 测试用例都通过之后则可以认为该功能通过验收. 但是软件中多个功能之间往往存在关联或依赖关系, 某一个功能的新增或修改可能或影响到其…

Android 12系统源码_SystemUI(十)窗口焦点发生变化导航栏闪烁问题分析

前言 在使用Android12为车机系统载体进行系统SystemUI开发的过程中发现一个很奇特的问题&#xff0c;当不同页面发生切换的时候&#xff0c;导航栏总是会闪一下&#xff0c;其实就是窗口焦点发生变化的时候&#xff0c;导航栏总是会消失一下再出现&#xff0c;虽然问题不是很严…

【Linux】信号集及相关函数(sigemptyset、sigfillset、sigprocmask)

目录 1、信号集2、自定义信号集相关函数3、sigprocmask函数函数解析代码举例 橙色 1、信号集 多个信号组成的一个集合称为信号集&#xff0c;其系统数据类型为 sigset_t 。 在 PCB 中有两个非常重要的信号集&#xff0c;一个称为“阻塞信号集”&#xff0c;另一个是“未决信号…

FreeRTOS移植

准备工作 准备基础工程 基础工程越简单越好&#xff0c;这里直接用之前的跑马灯工程作为基础工程。 FreeRTOS源码 FreeRTOS源码就是Source文件 FreeRTOS移植 向工程中添加相关文件 添加FreeRTOS源码 在基础工程下创建一个文件夹放FreeRTOS源码&#xff0c;portable文件…

关于FLAME和SMPL模型

英文参考文献&#xff1a;https://medium.com/offnote-labs/3d-face-and-body-reconstruction-95f59ada1040 一个训练好的FLAME模型的输入是一个参数向量&#xff0c;包括形状参数、姿势参数和表情参数。这些参数分别控制人脸的身份特征、头部的旋转和平移、面部的表情变化。一…

Python可视化工具分享

今天和大家分享几个实用的纯python构建可视化界面服务&#xff0c;比如日常写了脚本但是不希望给别人代码&#xff0c;可以利用这些包快速构建好看的界面作为服务提供他人使用。有关于库的最新更新时间和当前star数量。 1、 streamlit (23.3k Updated 2 hours ago) Streamlit…

数据全生命周期管理

数据存储 时代"海纳百川&#xff0c;有容乃大"意味结构化、半结构和非结构化多样化的海量的 &#xff0c;也意味着批数据和流数据多种数据形式的存储和计算。面对不同数据结构、数据形式、时效性与性能要求和存储与计算成本等因素考虑&#xff0c;应该使用适合的存储…