#include<iostream>
int next[10];
char s[] = " abcabd";
int main() //事实上是自己内部的next
{
next[1] = 0;
int j = 0;
for (int i = 2; i <= 6; i++)
{
if (s[j + 1] == s[i]) //增加长度
j++;
while (j && s[j + 1] != s[i]) //如果在有长度的情况下不满足下一个增加长度则::回撤
j = next[j];
next[i] = j;
}
for (int i = 1; i <= 6; i++)
std::cout << next[i] << ' ';
}
KMP算法 (next)
最新推荐文章于 2024-10-17 11:39:06 发布