社区
数据结构与算法
帖子详情
求字符'ababaabab'的nextval是多少
arkor
2010-12-08 10:38:30
求字符'ababaabab'的nextval是?
请给出详细的说明,谢谢。
...全文
4798
7
打赏
收藏
求字符'ababaabab'的nextval是多少
求字符'ababaabab'的nextval是? 请给出详细的说明,谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cap77
2010-12-09
打赏
举报
回复
http://www.slyar.com/blog/kmp-next-nextval.html
yaoweijq
2010-12-08
打赏
举报
回复
0, 0, 1, 2, 3, 1, 2, 3, 4
对于预处理结果数组result来说,
result[i]=max{x<i,并且str从开始到x的字串是str从开始到i的子串的后缀}
记sub为str从开始到i的子串的后缀
arr为str从开始到x的子串
第一个必然为0
第二个来说
sub = ab
x<2只有1
这时arr = a
a不是ab的后缀
所以第二个为0
第三个来说
sub = aba
arr = a,ab
只有a是aba的后缀
所以第三位为1
第四个
aub = abab
arr = a ,ab,aba
ab是abab的后缀
所以第四位为2
其他类推
arkor
2010-12-08
打赏
举报
回复
[Quote=引用 5 楼 arshavinal 的回复:]
next值为: 0 1 1 2 3 4 2 3 4
nextval : 0 1 0 1 0 4 1 0 1
我和二楼不一样哎,next值可求出,然后求Nextval,第几位就和哪一位的值比较,如果和那一位的值相同,就把它copy下来,如果不是,就是自己的Next值不变,例如第三位:为1和第一位比较,也是a,就把它的值记录下来,第六位与第四位相比不同,为第六位本来的值,为4.
解答……
[/Quote]
四楼是正确的。呵呵,恭喜你了。
艾莎云
2010-12-08
打赏
举报
回复
1
next值为: 0 1 1 2 3 4 2 3 4
nextval : 0 1 0 1 0 4 1 0 1
我和二楼不一样哎,next值可求出,然后求Nextval,第几位就和哪一位的值比较,如果和那一位的值相同,就把它copy下来,如果不是,就是自己的Next值不变,例如第三位:为1和第一位比较,也是a,就把它的值记录下来,第六位与第四位相比不同,为第六位本来的值,为4.
解答完毕,这个由于很久没用过,所以不敢说明到底是否正确,但next之肯定没错,满意请给分 ,谢谢~!
不动如岳
2010-12-08
打赏
举报
回复
楼上牛逼,看不懂哈
字符
串next和next
val
值的计算
字符
串next和next
val
值的计算 针对
字符
串
ababaabab
,计算next和next
val
的值。 第一行是序号,从0开始。 第二行是
字符
串的元素 第三行是next值,为当前位置前面
字符
串收尾重复的最长
字符
个数。 第四行是next
val
值,当以next和以i为索引的
字符
不相同时,next
val
值就是next值。当两个
字符
相同时,next
val
值是以next为索引的nextva...
串ababaaababaa的next和串
ababaabab
的next
val
的前一项的4号的next为2,所以先看最前面2个和最左边两个,一看ab 和ab 就匹配了,匹配加一就是第五号的next的值,如果前一项最大匹配匹配不了才看有多少匹配的,这个next
求
法我看了视频和网上的,发现有两种
求
法,一种是
求
最左边和最右边相等的最大个数,这个唯一要注意的是,是按照你选择的前一项的next决定你匹配的个数,就比如说第五号位置。就比如说串ababaaababaa,这个。next
val
的
求
法就是按照next
求
。所以这个3的位置为1,依次下来。
数据结构-kmp最易懂算next与next
val
值计算
什么是kmp算法 KMP算法是一种改进的
字符
串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt提出的,因此人们称它为克努特—莫里斯—普拉特操作(简称KMP算法)。KMP算法的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是通过一个next()函数实现,函数本身包含了模式串的局部匹配信息
求
字符
串 ‘
ababaabab
’ 的ne...
牛客网练习记录【
字符
串】
1,若串S=′software′,其子串的数目是() 1/1 A 8 B 37 C 36 D 9 【答案】B 【解析】
字符
串的子串,就是
字符
串中的某一个连续片段。截取一个
字符
串长度需要一个起始位置和结束位置。
字符
串“software”有8个
字符
,可是设置间隔的位置有9个,使用C(9,2)=36即可
求
得
字符
串“software”的所有子串。因为题目标明空串也是子串,故还
关于KMP算法中next和next
val
的算法思路
一,关于next的
求
法 就是比较从0到当前值减一是否有相同值(即正着看和倒着看对比),最后结果加一。 直接上图:
求
abaabc的next值和aabaabaabaac的next值 留一个小问题可以自己试着做一下,串“ababaaababaa”的next值为011234223456。 二,关于next
val
的
求
法 next
val
根据next值
求
,如果x位置和next[x]的
字符
相同,则next
val
[x]=next
val
[next[x]],否则next
val
[x]=next[x] (或.
数据结构与算法
33,010
社区成员
35,327
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章