看到了next矩阵的求解部分还有优化的方法,就把该部分给优化了一下,不知道优化的对不对,求各位大佬指点
//优化前
for(int i = 2, j = 0; i <= n; i++)
{
while(j && p[i] != p[j + 1])j = ne[j];
if(p[i] == p[j + 1])j++;
ne[i] = j;
}
//优化后
for(int i = 2, j = 0; i <= n; i++)
{
while(j && p[i] != p[j + 1])j = ne[j];
if(p[i] == p[j + 1])j++;
if(p[i + 1] == p[j + 1])ne[i] = ne[j];
else ne[i] = j;
}