笔记

给定一个模式串,求next[j]值

 求解方法:

1.第一位的next值为0

2.第二位的next值为1

后面求解每一位的next值时,根据前一位进行比较

3.第三位的next值:看第二位的模式串为b,对应的next值为1,则将第二位的模式串b与j=1的模式串进行比较,不同,则没有相同的字符串,值为1。

4.第四位的next值:看第三位的模式串为c,对应的next值为1,则将第三位的模式串c与j=1的模式串进行比较,不同,则没有相同的字符串,值为1.

5.第五位的next值:看第四位的模式串为a,对应的next值为1,则将第四位的模式串a与j=1的模式串进行比较,相同,则第五位的next值为第四位加1,也就是2.

6.第六位的next值:看第五位的模式串为a,对应的next值为2,则将第五位的模式串a与j=2的模式串进行比较,不同。继续比较,j=2对应的next值为1,将第五位模式串的a再与j=1的模式串比较,相同,则第六位的next值为第二位的next值再加1,也就是2.

7.第七位的next值:看第六位的模式串为b,对应的next值为2,则将第六位的模式串b与j=2的模式串进行比较,相同,则第七位的next值为第六位的nxet值加1,也就是3.

8.第八位的next值:看第七位的模式串为b,对应的next值为3,则将第七位的模式串b与j=3的模式串进行比较,不同。继续比较,j=3对应的next值为1,则将第七位的模式与j=1的模式串进行比较,也不同,则没有相同的字符串,值为1.

9.第九位的next值:看第八位的模式串为c,对应的next值为1,则将第八位的模式串c与j=1的模式串进行比较,不同,则没有相同的字符串,值为1.

10.第10位的next值:看第九位的模式串为a,对应的next值为1,则将第九位的模式串a与j=1的模式串进行比较,相同,则第10位的next值为第九位的next值加1,也就是2.

11.第11位的next值:看第10位的模式串为b,对应的next值为2,则将第10位的模式串b与j=2的模式串进行比较,相同,则第11位的next值为第10位的next值加1,也就是3.

防止忘记,特记笔记。

数据结构——串中kmp算法求模式串中next函数值相关推荐

  1. KMP算法--字符串模式匹配算法

    今天看到第四章<串>了,其中我觉得花的时间多一点的值得我写篇随笔的知识点就是:4.3 串的模式匹配算法:书上介绍了两种字符串匹配算法,一种是最简单最容易想到的逐个字符匹配算法(时间复杂度在 ...

  2. 数据结构:详解KMP算法,手工求解next、nextval数组,求模式串的比较次数例题

    KMP 算法 手工求解 next 数组,nextval数组 例题:求模式串的比较次数 2019 年 408 统考真题 设主串 T="abaabaabcabaabc",模式串 S=& ...

  3. a - 数据结构实验之串一:kmp简单应用_串的两种模式匹配方式(BF/KMP算法)

    串的两种模式匹配方式(BF/KMP算法) 前言 串,又称作字符串,它是由0个或者多个字符所组成的有限序列,串同样可以采用顺序存储和链式存储两种方式进行存储,在主串中查找定位子串问题(模式匹配)是串中最 ...

  4. 数据结构之串:KMP算法

    串:KMP算法 基本概念: KMP算法原理: KMP算法的代码实现: KMP算法的性能: 基本概念: 应用优化前提: 有部分匹配的前缀和后缀 KMP算法原理: 按普通的串的模式匹配算法,在1位置比较完 ...

  5. P5357 【模板】AC自动机(二次加强版)(AC自动机建fail树dfs求模式串出现次数)

    P5357 [模板]AC自动机(二次加强版)(AC自动机建fail树dfs求模式串出现次数) 传送门 形式上,AC 自动机基于由若干模式串构成的 Trie 树,并在此之上增加了一些 fail 边:本质 ...

  6. 力扣- - 最短回文串(KMP算法)

    力扣- - 最短回文串(KMP算法) 文章目录 力扣- - 最短回文串(KMP算法) 一.题目描述 二.分析之KMP算法 1.暴力法 2.KMP算法 3.next数组求法1:暴力查找最长的前后缀 4. ...

  7. KMP算法求回溯数组的步骤

    KMP算法到底是什么原理就不说了,各种资料上讲的明明白白,下面我就如何用代码来实现做一下说明和记录. KMP的核心思想就是,主串不回溯,只模式串回溯.而模式串匹配到第几位时失配,要回溯多少,由模式串本 ...

  8. Java ME游戏开发中,碰撞检测算法在Java?ME中的实现(

    2019独角兽企业重金招聘Python工程师标准>>> 在Java ME游戏开发中,碰撞检测算法在Java?ME中的实现(百搜技术) 在Java ME游戏开发中,经常需要进行碰撞检测 ...

  9. 王道408数据结构——第四章 串(KMP算法)

    一.串的定义和实现 字符串简称串,是由零个或多个字符组成的有限序列,一般记为S=′a1a2⋅⋅⋅an′S='a_1a_2···a_n'S=′a1​a2​⋅⋅⋅an′​,n称为串的长度. 串中任意多个连 ...

最新文章

  1. 动态的管理ASP.NET DataGrid数据列【转载】
  2. switch使用中遇到的问题
  3. 程序员面试金典 - 面试题 04.12. 求和路径(二叉树递归)
  4. 计算机一级举报单位,2018年9月计算机一级Photoshop考试巩固练习题(三)
  5. mybatis自动生成mapping和实体
  6. Excel 2016双击文件打开为空白的解决办法-亲测解决。
  7. java项目描述_111个知名Java项目集锦(包括url和描述)
  8. 相机标定(三)—— 正交投影和透视投影变换
  9. 连续型切片与离散加减的思路学习
  10. VAST2.0视频广告投放解决方案改变视频网站未来技术格局
  11. NOIP提高组【JZOJ4809】挖金矿
  12. ubuntu 18.04 安装NFS 共享文件夹,Linux挂载,Mac 挂载
  13. Ubuntu 升级错误信息:mount: mounting none on /dev failed: no such device的解决办法
  14. stc89c52rc转移到面包板,使用oled屏
  15. WiFi-ESP8266入门http(3-1)网页认证上网-post请求(原教程)
  16. 【译】A Fully Spiking Hybrid Neural Network for Energy-Efficient Object Detection
  17. 研究了3天,终于将 Shader 移植到 Cocos Creator 2.2.0 上了
  18. 个人版机房收费——数据库设计
  19. 电灯泡实验应该怎么做_物理小实验 教你测量小灯泡的电功率的方法
  20. STM32——光敏传感器实验-M4

热门文章

  1. 投票系统源码--微信投票系统开发功能介绍以及源码分享
  2. SDC沙盒加密究竟适不适合源代码防泄密
  3. C语言学习-原码、反码、补码(内含计算工具)
  4. 看完一个在校大学生的 Java 学习历程,我觉得我还能学得更多
  5. Ubuntu 完美中文字体
  6. 数学分析教程史济怀练习8.6
  7. 谷牛期权:铜期权波动率正当时
  8. 计算机网络安全之一:网络安全概述
  9. 使用Gradle生成jar包
  10. MSP430-GRACE 实战(三):定时器中断