写出模式acabbcacabd的KMP算法中next[j],用图表示

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/14 11:53:25
写出模式acabbcacabd的KMP算法中next[j],用图表示

写出模式acabbcacabd的KMP算法中next[j],用图表示
写出模式acabbcacabd的KMP算法中next[j],用图表示

写出模式acabbcacabd的KMP算法中next[j],用图表示
int *findNext(string P)
{
int i=0;
int k=-1;
int m=P.length();
if(m==0)
return NULL;
int *next=new int[m];
if(!next)
return NULL;
next[0]=-1;
while(i=0&&P[i]!=P[k])
k=next[k];
i++;
k++;
if(i==m) break;
if(P[i]==P[k])
next[i]=next[k];
else next[i]=k;
}
return next;
}
在main函数中让P=‘“acabbcacabd”,自己看结果
ps:这个next[j]是优化过的,即if(P[i]==P[k]) next[i]=next[k];