手算 KMP 算法的 next 数组

例:求串'ababaaababaa'的next数组

手算 KMP 算法的 nextval 数组

nextval 数组可由 next 数组求得,具体求法看以下代码:

// 由 next 数组求得 nextval 数组
string s;  // 模式串
 
for (int i = 0; i < s.length(); i++)
{
   if (s[i] != s[next[i]])
      nextval[i] = next[i];
   else
      nextval[i] = nextval[next[i]];
}

例:求串'ababaaababaa'的nextval数组