数据结构-串手算KMP算法的next和nextval数组

Posted Mount256

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构-串手算KMP算法的next和nextval数组相关的知识,希望对你有一定的参考价值。

手算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数组

以上是关于数据结构-串手算KMP算法的next和nextval数组的主要内容,如果未能解决你的问题,请参考以下文章

字符串之KMP算法求解next数组(C语言)

数据结构串---KMP模式匹配算法之获取next数组

kmp算法

数据结构kmp算法中的next函数

数据结构--KMP算法总结

KMP算法的next函数求解和分析过程