计算字符串'aababaaaba'的next数组值和nextval数组值。
时间: 2023-06-11 18:06:10 浏览: 322
KMP算法求next 和 nextval
5星 · 资源好评率100%
字符串'aababaaaba'的 next 数组值为:[0, 1, 0, 1, 2, 3, 2, 3, 4, 5]。
计算 next 数组的方法是,从第二个字符开始,依次计算其前缀子串和后缀子串的最长公共前缀长度,直到最后一个字符。例如,对于字符'b',它的前缀子串为'a'、'aa'、'aab',后缀子串为'b'、'ab'、'bab',它们的最长公共前缀长度为1,因此 next[2]=1。
nextval 数组值为:[0, 1, 0, 3, 2, 5, 2, 5, 4, 5]。
计算 nextval 数组的方法是,在计算 next 数组的过程中,如果当前字符与前缀子串的下一个字符相同,则 nextval 值等于前缀子串的 nextval 值,否则为前缀子串的下标。例如,对于字符'b',它的前缀子串为'a'、'aa'、'aab',后缀子串为'b'、'ab'、'bab',它们的最长公共前缀长度为1,因此 next[2]=1,而前缀子串'aab'的 nextval 值为0,因此 nextval[2]=nextval[0]=0。
阅读全文