KMP算法:next和nextval值计算

KMP算法:next和nextval值计算KMP算法的next和nextval值计算先看看next数据值的求解方法例:下标从1开始(若题中给定下标为0开始,把所有值-1即可)next数组的求解方法:根据前一个字符next,一直循环找到第

大家好,又见面了,我是你们的朋友全栈君。

KMP算法的next和nextval值计算

 

先看看next数据值的求解方法

例:下标从1开始(若题中给定下标为0开始,把所有值-1即可)

<span role="heading" aria-level="2">KMP算法:next和nextval值计算

next数组的求解方法:根据前一个字符next,一直循环找到第一次匹配成功的下标,并把next=1;如果当前字符与下标1字符都不相同,next值就为1(初始下标值)

第一位为0,第二位为1,

第三位:把前一个模式串字符b与下标next值所对应的字符比较,b 和a不同,next为1(初始下标值)

第四位:前一个,c   c和a不同,next为1

第五位:a和a相同(下标为1)1+1=2

第六位:b和b相同(下标为2)2+1=3

第七位:a和c不同(下标为3),继续找,c下标为1,a和a相同(下标为1) 1+1=2

 

nextval数组求解方法:根据next数组的值作为下标找到第一个不同的字符,把它的下标作为nextval的值;否则继续循环比较,直到与第一个字符也相同,此时,nextval值为0

第一位为0,第二位为1,

第三位:(当前下标字符)c与a(next值1作为下标的字符进行比较),若不同则为初始下标值1

第四位: a和a相同(第一个字符),nextval值为0

第五位:b和b(下标为2),相同,继续比较,b的next为1,b和下标为1的比,即b和a比,不同,则nextval值为1

第六位:a和c(下标为3),不同,nextval为下标的值 3

第七位:a和b(下标为2),不同,nextval为下标的值 2

注:如果下标从0开始,只需把所有的next和nextval值-1就是

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155234.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • springboot实战第四章-服务端推送技术

    springboot实战第四章-服务端推送技术

    2021年5月15日
    121
  • 图书馆管理系统UML各种图「建议收藏」

    图书馆管理系统UML各种图「建议收藏」1用例图主要用来描述“用户、需求、系统功能单元”之间的关系。它展示了一个外部用户能够观察到的系统功能模型图。  【用途】:帮助开发团队以一种可视化的方式理解系统的功能需求。  用例图所包含的元素如下:actor、usecase、子系统、四中关系(如下:)如下是图书管理系统中管理员用例图:

    2022年10月22日
    0
  • 原生js发送post请求_javascript发送post请求

    原生js发送post请求_javascript发送post请求环境:vs201916.5.1aspnetcore3.1.1fiddlerrestsharp106.10.1说明:要测试restsharp的功能,首先需要了解http传参和下载上传文件的原理,请参考:c#:从http请求报文看http协议中参数传递的几种方式c#使用Http上传下载文件一、首先准备webapi项目usingSystem;usingSystem.C……

    2022年9月7日
    0
  • Maven环境配置及介绍[通俗易懂]

    Maven环境配置及介绍[通俗易懂]Maven环境配置及介绍Maven的出现是为了解决jar包管理的问题,可以通过简短的描述信息,进行项目管理的工具软件。1.maven的安装下载地址:http://maven.apache.org/downloa/d.cgi2.环境变量配置maven环境变量配置,配置方式跟jdk有些类似。新建环境变量MAVEN_HOME(值为maven的根目录)、然后在PATH环境变量里加入%MAVEN_HOME%\bin;即可。使用快捷键win+R,在黑窗口输入mvn–v进行查看,显示如下就表

    2022年5月14日
    35
  • dos攻击防范措施_属于被动攻击的手段是

    dos攻击防范措施_属于被动攻击的手段是常见的网络攻击方式##攻击防御一、Dos攻击(DenialofServiceattack)DoS是DenialofService的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络带宽攻击和连通性攻击。作个形象的比喻来理解DoS。街头的餐馆是为大众提供餐饮服务,如果一群地痞流氓要DoS餐…

    2022年10月1日
    0
  • WCF分布式事务(EF)

    WCF分布式事务(EF)

    2022年1月6日
    248

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号