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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • dede织梦栏目页和文章页中获取当前栏目名称方法

    dede织梦栏目页和文章页中获取当前栏目名称方法

    2021年9月24日
  • potplayer使用madvr后没有了_potplayer配置

    potplayer使用madvr后没有了_potplayer配置 所需资源下载 Resource Version Download Notes Potplayer   Download 根据系统选择32位或64位安装文件 LAVFilters 0.68.1 Download 32位或64位版本应对应于Potplayer版本 madVR 0.90.24 Download …

    2022年9月14日
  • mysql读写分离(使用Atlas实现)

    mysql读写分离(使用Atlas实现)mysql-proxy是官方提供的mysql中间件产品可以实现负载平衡,读写分离,等,但其不支持大数据量的分库分表且性能较差。下面介绍几款能代替其的mysql开源中间件产品:Atlas,tddl,Mycat。  Mysql中间件研究(Atlas,cobar,TDDL)

    2022年5月23日
  • 一文弄懂罗斯蒙特644温度变送器接线

    一文弄懂罗斯蒙特644温度变送器接线罗斯蒙特644温度变送器分为单输入644H和双输入644S两种,昌晖仪表在本文介绍温度变送器644接线,大家学习一起罗斯蒙特644温度变送器接线的注意事项。问题1:下图①位置这四个端子是干什么的?问题2:下图②位置这三个端子是干什么的?问题3:下图③位置这三个端子是干什么的?问题4:下图④位置这个插针是干什么的?问题5:下图⑤位置拨盘L和H位置代表什么?问题6:上图⑥位置这两个端子是干什么的?结…

    2022年6月21日
  • PetShop 4.0 官方详解

    PetShop 4.0 官方详解Microsoft.NETPetShop4:将ASP.NET1.1应用程序迁移到2.0发布日期:2006-5-9|更新日期:2006-5-9适用于:Microsoft.N

    2022年7月2日
  • pycharm使用技巧及常用快捷键_wps自定义快捷键设置

    pycharm使用技巧及常用快捷键_wps自定义快捷键设置PyCharm自身提供了大量实用的快捷键,但是由于自己之前其他软件的快捷键使用习惯与此不同,这就需要在PyCharm量身DIY属于自己的快捷键了。快来按照下面的流程操作吧!!!1、File—&gt;Settings【Settings的快捷键大家看到了嘛!!!Ctrl+Alt+S】2、Keymap—&gt;齿轮状设置—&gt;Duplicate建议在设置快捷键之前…

    2022年8月27日

发表回复

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

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