数据结构题:串'ababaaababaa'的next数组为()A.012345678999 B.012121111212 C.011234223456 D.0123012322345答案:C希望你们可以教教我怎么做这道题,谢谢.

来源:学生作业学帮网 编辑:学帮网 时间:2024/05/08 13:15:10

数据结构题:串'ababaaababaa'的next数组为()
A.012345678999 B.012121111212 C.011234223456 D.0123012322345
答案:C
希望你们可以教教我怎么做这道题,谢谢.

最好是您记得next数组的算法,这样您就可以依据算法思想推出来,如果不行说个较简单的方法.
即当前位置上的next值即等于其前紧邻的与起始位置开始匹配的最长序列长度(本例需要+1,因为序列的起始位置从1开始而不是从0开始,判断依据是因为起始位置a的next取值为0,因此说明0位置不用于存储序列中的元素).
例如,ababaaababaa中,第二个b的取值为2,因为其前与起始位置开始匹配的最长序列为“a”长度为1(1+1 = 2).
例如,第三个a的取值为3,因为其前与起始位置开始匹配的最长序列为“ab”,长度为2(2 + 1 = 3)