串“ababaaababaa”的next数组为( )。

admin2019-07-18  3

问题 串“ababaaababaa”的next数组为(    )。

选项 A、—1,0,1,2,3,4,5,6,7,8,8,8
B、—1,0,1,0,1,0,0,0,0,1,0,1
C、—1,0,0,1,2,3,1,1,2,3,4,5
D、—1,0,1,2,一1,0,1,2,1,1,2,3,4

答案C

解析 做出模式串以及对应字符下标,如下表所示。

S串长度为0时,next[0]=—1;S串长度为1时,next[1]=0;S串长度为2时,S串为“ab”next[2]=0;S串长度为3时,S串为“aba”next[3]=1;(S串中下画线标出了其串首位置以及末尾位置的最长匹配串对,由此可求得当前next值)S串长度为4时,S串为“abab”next[4]=2;S串长度为5时,S串为“ababa”next[5]=3;S串长度为6时,S串为“ababaa”next[6]=1;S串长度为7时,S串为“ababaaa”next[7]=1;S串长度为8时,S串为“ababaaab”next[8]=2;S串长度为9时,S串为“ababaaaba”next[9]=3;S串长度为10时,S串为“ababaaabab”next[10]=4;S串长度为11时,S串为“ababaaababa”next[11]=5;综上,next数组值为:—1,0,0,1,2,3,1,1,2,3,4,5
转载请注明原文地址:https://kaotiyun.com/show/CDCi777K
0

最新回复(0)