求字符'ababaabab'的nextval是多少

arkor 2010-12-08 10:38:30

求字符'ababaabab'的nextval是?

请给出详细的说明,谢谢。
...全文
4798 7 打赏 收藏 转发到动态 举报
写回复
用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
  • 打赏
  • 举报
回复
楼上牛逼,看不懂哈

33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧