以此字符串为例子:

i : 0 1 2 3 4 5 6 7

a b a b a c d

-1 0 0 1 2 3 0 0

我一般求Next数组时都会求到实际最后一个字符的下一位,因为循环节的相关题目会用的到。

1.“Next数组”中第i位表示在与母串发生失配时应该跳转到的用来比较的那一位;

2.“Next数组”中第i位可以表示以第i-1位为结尾的后缀串的长度;

引申:最后一位的下一位的值可以表示最后一位为结尾的后缀串是否存在(0即不存在),并且能知道串有多长;当不断从第i位跳到第Next[i]位并取当前位置的Next数组的值的时候,可以不停地找到与后缀相匹配的子字符串(子字符串的后缀子字符串必定是子字符串的后缀),并且可以求出有多少个可以与最后一位为结尾的后缀相匹配和他们的长度。

3.“Next数组”求循环节相关内容:

(1)求循环节长度:Next[i]表示的是第i位失配时应跳转的位置,也可以表示第i-1位为结尾的后缀串长度,那么如果能跳转,i-1就可以用来表示循环节最后出现的位置,而且Next[i]-1就可以表示上一次出现的位置,做差就可以求出循环节长度,表示为i-Next[i];

(2)求循环次数:有了循环节长度,那么就可以进行循环次数的求解,0~i-1共有i个字符,i / (i - Next[i])就是循环次数。

(3)循环判定:如果第i-1位为结尾的循环必定有 i % (i - Next[i]) == 0 .

Next数组个人理解相关推荐

  1. php json 数组 区别,PHP实战:JSON两种结构之对象和数组的理解

    <PHP实战:JSON两种结构之对象和数组的理解>要点: 本文介绍了PHP实战:JSON两种结构之对象和数组的理解,希望对您有用.如果有疑问,可以联系我们. JSON简介 PHP实战JSO ...

  2. KMP中next数组的理解

    next数组是KMP的核心,但对于next数组我们总是有时候感觉明白了,但有时候又感觉没明白,现在我就说下我自己对KMP中next数组的理解,首先next[i]上的数字的意义,next[i]表示的是当 ...

  3. java 数组存入数据库_Java中关于二维数组的理解与使用

    今天练习的时候遇到一个题目,题目需求是这样的: 需求说明: 根据3个班各5名学生某门课程的成绩,正确使用二维数组计算如图所示3个班各自的总成绩 分析: 要实现这个功能需要存储两个信息: 一个是班级信息 ...

  4. java不等长二维数组_Java中关于二维数组的理解与使用

    今天练习的时候遇到一个题目,题目需求是这样的: 需求说明: 根据3个班各5名学生某门课程的成绩,正确使用二维数组计算如图所示3个班各自的总成绩 分析: 要实现这个功能需要存储两个信息: 一个是班级信息 ...

  5. 数组、数组的定义、对数组的理解

    数组.数组的定义.对数组的理解 数组:是一种容器,可以同时存放多个数据值. 数组的特点: 数组是一种引用类型数据,存放在内存中. 数组当中存放多个数据(元素),类型必须统一. (如果定义的是int类型 ...

  6. 1.numpy中三维数组的理解

    numpy中三维数组的理解 三维数组图形--立方体 图片中的三维数组 RNN中序列数据的三维数组 迭代数据中的三维数组 三维数组图形–立方体 我们在做图像处理,RNN序列数据,迭代数据的时候会遇到三维 ...

  7. html页面创建二维数组,二维数组怎么理解

    如何理解Java中的二维数组? 二维数组可以看成是以一维数组为元素的一维数组.通常将最外层的一维数组称为外维数组:而作为元素的内层数组称为内维数组.如下: //声明一个字符串类型的二维数组,其中外维数 ...

  8. 递归循环一个无限极数组_理解递归、尾调用优化和蹦床函数优化

    想要理解递归,您必须先理解递归.开个玩笑罢了, 递归 是一种编程技巧,它可以让函数在不使用 for 或 while 的情况下,使用一个调用自身的函数来实现循环. 例子 1:整数总和 例如,假设我们想要 ...

  9. 2018.9.28 典型for循环特殊理解及其二维数组的理解

    如果for里面换成了函数结果会是怎么样呢?下面就来介绍一下 package praDemo;public class Test {public static boolean foo(char c) { ...

  10. java 数组 去掉第一个_java中数组的理解以及如何去掉断点

    数组也是对象 数组是放置相同类型的数据 数组里面放置的每一个变量都是有下标的. 数组的长度是确定的 数组的元素类型必须是相同的 数组类型可以是任何数据类型,包括基本类型和引用类型 数组变量属于引用类型 ...

最新文章

  1. [译] Couchbase 使用 cbbackup 备份
  2. mybatis3.2.8 与 hibernate4.3.6 混用
  3. 13 登陆_13级!凌晨,“黑格比”登陆!对莆田的最新影响……
  4. GD32 使用stm32 固件库
  5. 留学面试 计算机专业话题,英语面试_美国留学计算机专业详解_沪江英语
  6. iOS开发-面试总结(十五)
  7. JSP开发环境配置问题解答
  8. Leetcode每日一题:1122.relative-sort-array(数组的相对排序)
  9. DevExtreme移动开发框架
  10. EasyNVR摄像机无插件直播流媒体服务器前端构建之输入框样式的调整
  11. iOS之某公司iOS开发笔试题
  12. Androidの矢量图形之VectorDrawable研究
  13. 【 js 算法类】这么全的数组去重,你怕不怕?
  14. 闪电网络开启BTC支付时代?他们不同意
  15. 校/院级虚拟仿真实验教学平台ilab-x接口版本对接文档
  16. ln软链接调试mininet
  17. 转载Flickr 网站架构分析
  18. 【rmzt:进击的巨人三笠帅气主题】
  19. html页面通过flv.js实现视频监控直播和点播功能。
  20. 【深圳VS台湾】真正的无人驾驶还要等75年?在台湾已运行大半年(附台湾和深圳无人驾驶公交对比表)...

热门文章

  1. Apple个人开发者账号相关问题
  2. 解决Ubuntu18中 A stop job is running for .. 导致关机慢
  3. 13.es slop参数实现近似匹配以及原理剖析和相关实验
  4. PuTTY 远程连接 Linux 服务器
  5. Openstack(T版)概述和环境部署
  6. ME3616-OPENCPU完整调试笔记
  7. 千万级中文公开免费聊天语料数据分享
  8. 【Linux系列文章】克隆虚拟机与常用问题
  9. REMIX智能合约实例BALLOT分析
  10. Spring Boot配置MongoDB多数据源