经典指数          
原因
4630
浏览数
0
收藏数
 

串′ababaaababaa′的next数组为()
  • 012345678999
  • 012121111212
  • 011234223456
  • 0123012322345

     举报   纠错  
 
切换
1 个答案

next数组下标从1开始计算

next[1] 肯定是 0 

next[2] 肯定是 1

next[n]

的情况,将前面n-1个字符,计算从首尾开始组成最大的相同子串的长度,如果找到,那么next值是该长度加1,否则next值是1。

举例

next[6]的计算,字符串第六位是

a

,(

ababa

a

ababaa)

将前面的5个字符,从头尾开始取4个组成子串比较,如果不相等,则从首尾取3个字符组成子串继续比较,并以此类推,

如果一直比较到最后一个字符都不相等,那么该next值为1。

4个字符的情况:abab : baba

3个字符的情况:aba   :  aba  此时相等,那么next[6] = 3+1 = 4

 
切换
撰写答案