关于魔改kmp

学术版

ningago @ 2022-06-27 11:52:53

RT,求问需对子串 [l,n] 做kmp算法,pne的初始值该如何设定?

这是输出鬼畜负数的代码:

for(int l = 1,p;l <= n;l++)
        {
            p = l - 1;
            ne[l][l] = l - 1;
            for(int i = l + 1;i <= n;i++)
            {
                while(p != l - 1 && str[p + 1] != str[i])
                {
                    p = ne[l][p];
                }
                if(str[p + 1] == str[i])
                    p++;
                ne[l][i] = p;
                printf("ne[%d][%d] = %d\n",l,i,ne[l][i]);   
            }
        }

|