串′ababaaababaa′的next数组(求next数组思路与实例)
刚刚开始遇到这个问题说实话完全懵逼,然后简单搜了下,还是理解的模棱两可。最后看了几篇博客,现在才算是真正的理解了。
首先在将例子之前先说说这个next数组求解的思路:
第一位的next的值是0,第二位的next的值为1,后面求解每一位的next的值时。首先将前一位与其next值对应的内容进行比较,如果相等,则该位的next值就是前一位的next值加上1;如果不等,如果不等,向前继续寻找next值对应的内容与前一位进行比较(向前继续寻找next值对应的内容与next值对应的内容的next前一位进行比较),直到找到某个位上的内容的next值对应的内容与前一位相等为止,则这个位对应的值加上1即为需求的next值;如果找到第一位都没有找到与前一位相等的内容,那么需求的位上的next值即为1。所以中心思想则是递进查看前一位的next对应的是否和前一位相同。找到相同的则在找到的基础上加1。
求串′ababaaababaa′的next数组
模式串 | a | b | a | b | a | a | a | b | a | b | a | a |
---|---|---|---|---|---|---|---|---|---|---|---|---|
下标 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
1、前两位:next数组前两位规定是0,1 即前两位ab对应的next数组为01,则:
模式串 | a | b | a | b | a | a | a | b | a | b | a | a |
---|---|---|---|---|---|---|---|---|---|---|---|---|
下标 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
next数组 | 0 | 1 |
2、接下来看第三位,按照next数组求解方法。第三位a的前一位为第二位的b,b的next值为1对应内容为a,b与a不同,向前继续寻找next值对应的内容来与前一位进行比较。因为找到第一位都没有找到与前一位相等的内容,所以第三位a的next值为1,则:
模式串 | a | b | a | b | a | a | a | b | a | b | a | a |
---|---|---|---|---|---|---|---|---|---|---|---|---|
下标 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
next数组 | 0 | 1 | 1 |
3、接下来看第四位b,b的前一位a的next值1对应内容为a,相同,所以该位b的next值就是前一位a的next值加上1,即为2
模式串 | a | b | a | b | a | a | a | b | a | b | a | a |
---|---|---|---|---|---|---|---|---|---|---|---|---|
下标 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
next数组 | 0 | 1 | 1 | 2 |
4、接下来看第五位a,a的前一位b的next值2对应内容为b,相等,所以该位a的next值就是前一位b的next值加上1,即为3
模式串 | a | b | a | b | a | a | a | b | a | b | a | a |
---|---|---|---|---|---|---|---|---|---|---|---|---|
下标 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
next数组 | 0 | 1 | 1 | 2 | 3 |
5、接下来看第六位a,a的前一位a的next值3对应内容为a,相等,所以该位a的next值就是前一位a的next值加上1,即为4
模式串 | a | b | a | b | a | a | a | b | a | b | a | a |
---|---|---|---|---|---|---|---|---|---|---|---|---|
下标 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
next数组 | 0 | 1 | 1 | 2 | 3 | 4 |
6、接下来看第七位a,a的前一位a的next值4对应内容为b,不相等,向前继续寻找next值对应的内容来与前一位进行比较,b的next值2对应的内容为b,依旧不相等,继续向前寻找,第二位b的next值1对应内容为a,相等。因为是在第二位b处实现的相等,所以第七位a的next值为第二位b的next值上加1,即为2
模式串 | a | b | a | b | a | a | a | b | a | b | a | a |
---|---|---|---|---|---|---|---|---|---|---|---|---|
下标 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
next数组 | 0 | 1 | 1 | 2 | 3 | 4 | 2 |
7、接下来看第八位,同样道理,得出b的next值为2
模式串 | a | b | a | b | a | a | a | b | a | b | a | a |
---|---|---|---|---|---|---|---|---|---|---|---|---|
下标 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
next数组 | 0 | 1 | 1 | 2 | 3 | 4 | 2 | 2 |
8、接下来看第九位,前一位b的next值2对应内容为b,相等,所以此处next值为3
模式串 | a | b | a | b | a | a | a | b | a | b | a | a |
---|---|---|---|---|---|---|---|---|---|---|---|---|
下标 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
next数组 | 0 | 1 | 1 | 2 | 3 | 4 | 2 | 2 | 3 |
9、第十位同理可得,为4
模式串 | a | b | a | b | a | a | a | b | a | b | a | a |
---|---|---|---|---|---|---|---|---|---|---|---|---|
下标 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
next数组 | 0 | 1 | 1 | 2 | 3 | 4 | 2 | 2 | 3 | 4 |
10、第十一位a的前一位b的next值4对应内容为b,相等,所以此处next值为5
模式串 | a | b | a | b | a | a | a | b | a | b | a | a |
---|---|---|---|---|---|---|---|---|---|---|---|---|
下标 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
next数组 | 0 | 1 | 1 | 2 | 3 | 4 | 2 | 2 | 3 | 4 | 5 |
11、最后,第十二位同理可以得到next值位6
模式串 | a | b | a | b | a | a | a | b | a | b | a | a |
---|---|---|---|---|---|---|---|---|---|---|---|---|
下标 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
next数组 | 0 | 1 | 1 | 2 | 3 | 4 | 2 | 2 | 3 | 4 | 5 | 6 |
http://www.taodudu.cc/news/show-6748132.html
相关文章:
- sap测试IDOC include ZXTRKU02
- ST-Norm: Spatial and Temporal Normalization for Multi-variate Time Series Forecasting(KDD2021)
- STM32某些基础概念扫盲
- StyleGAN 架构解读(重读StyleGAN)精【2】
- ABAP_单据流程中调用IDOC通过PI的方式发送资料 NACE
- NACE配置SAP output功能
- ABAP-如何发用邮件附件的方式发送订单打印的PDF
- S/4 HANA中发票输出切换回NAST
- S4/HANA ME21N创建PO 输出控制消息按钮丢失解决方法(切换EDI 输出模式BRF+至NAST模式)
- NAST概述
- 大学生计算机技能应用大赛比赛流程【Java】
- 2016江苏省大学生程序设计大赛 JSCPC 总结
- 大学生html5设计大赛方案,大学生简历设计大赛活动策划书
- 怎么修改Mac密码?新鲜出炉的修改MAC电脑密码教程
- 破解苹果电脑系统密码的方法步骤
- Macbook Pro 密码设置
- Mac密码该如何更改,Mac密码更改教程
- Mac电脑没设开机密码却要输入开机密码如何解决?
- (4)简单置换
- 置换的轮换表示
- Linux中的进程管理类、ps 查看当前系统进程状态、内存置换算法LRU、查看与sshd相关进程
- 【考研数学二——函数和极限知识梳理(思维导图)】
- js 中函数和对象
- sort函数和优先队列的自定义方式的梳理
- (更新中)Python、JavaScript、Java和C++语言的语法对比与梳理
- javaScript深拷贝和浅拷贝简单梳理
- ADB(二)_ADBD_main()函数代码梳理
- Vue中构造数组数据-map和forEach方法梳理
- JS高级开发-内置对象Object梳理
- Muduo网络库核心梳理
串′ababaaababaa′的next数组(求next数组思路与实例)相关推荐
- 后缀数组 java_Java后缀数组-求sa数组
后缀数组的一些基本概念请自行百度,简单来说后缀数组就是一个字符串所有后缀大小排序后的一个集合,然后我们根据后缀数组的一些性质就可以实现各种需求. 1 public classMySuffixArray ...
- 数据结构-串-KMP算法详解(Next数组计算)(简单易懂)
文章目录 KMP介绍 一.求Next数组 前后缀表 求最长公共前后缀 最长相等前后缀表转Next数组 二.使用Next数组来匹配字符串 总结 本文章就专讲kmp,暴力匹配就不讲了(我相信能搜索kmp的 ...
- 牛客练习赛33 D tokitsukaze and Inverse Number (树状数组求逆序对,结论)
链接:https://ac.nowcoder.com/acm/contest/308/D 来源:牛客网 tokitsukaze and Inverse Number 时间限制:C/C++ 1秒,其他语 ...
- 【leetcode】2248. 多个数组求交集(js实现)
1. 题目 2248. 多个数组求交集 2. 思路 先找到一个参考集合set1 去遍历nums中的每一个数组,并遍历数组中的每一个元素,依次求两个集合的交集,并将得到的交集赋值给参考集合set1 最后 ...
- ural 1297 O(nlogn) 后缀数组求最长回文字串
把原串复制一份反过来接在原串后面,中间用没出现过的字符隔开,然后跑后缀数组,在原创枚举每一个位为回文中心(分奇偶讨论),则回文串长度相当于原串与反串对应位置的lcp,所以先用ST预处理,然后查询.复杂 ...
- 4. 串的【朴素模式匹配算法】、【KPM算法:求next数组、nextval数组】
串的模式匹配:在主串中,找到与模式串相同的子串,并返回其所在位置. 其实就是给出一个串abc,找到abc在主串的位置[abc都要匹配] 模式串:给出一个串abc 子串:主串中的abc[可能没有] 文章 ...
- 后缀数组以及利用后缀数组求取最长公共字串
后缀树组是一个字符串的所有后缀的排序数组.后缀是指从某个位置 i 开始到整个串末尾结束的一个子串.字符串 r 的从 第 i 个字符开始的后缀表示为 Suffix(i) ,也就是Suffix(i)=r[ ...
- KMP-两种方法求next数组
文章目录 前言 最佳最快方法 原理 方法详述 分析和思考 其他的next数组 总结 最好理解记忆方法 原理 前缀字符串和后缀字符串 部分匹配值 next数组意义 方法详述 转化 思考 测试链接 前言 ...
- KMP算法求回溯数组的步骤
KMP算法到底是什么原理就不说了,各种资料上讲的明明白白,下面我就如何用代码来实现做一下说明和记录. KMP的核心思想就是,主串不回溯,只模式串回溯.而模式串匹配到第几位时失配,要回溯多少,由模式串本 ...
最新文章
- 【硬件基础】制作直流电源
- 呼叫中心的服务水平管理
- 基于VTK的MFC应用程序开发(1)
- YUV与RGB互转各种公式 (YUV与RGB的转换公式有很多种,请注意区别!!!)
- js中的preventDefault
- hough变换检测圆周_hough变换原理以及实现(转载)
- 【我所认知的BIOS】— uEFI AHCI Driver(8) — Pci.Read()
- 模型堆叠(Stacking)和模型融合的原理与实现以及一个库heamy的介绍
- desktop viewer
- WebConfig节点详解
- 由浅入深了解统计机器翻译模型
- 只有程序猿才能看懂的段子,不笑你拿小拳拳捶我!!!
- 生成式对抗网络(GAN)实战——书法字体生成练习赛
- 笔记记录--基于ccpd数据集利用Paddle OCR训练车牌检测模型
- Java—飞花的糖果
- 一文搞懂,PO设计模式详解
- 设置组件为圆角的方法
- 计算机无法用630打印机,lq630打印机怎么恢复出厂设置 lq630打印机恢复出厂设置的步骤教程...
- 线性分类和非线性分类
- 开发之外,我们还用过哪些装X的神器