帮忙算一个KPM算法的next数组值.a b a b a b b-1 0 0 1 2 3 4上面的是我算的.但是有本书上却是-1 0 0 1 2 1 2后面2位和我算的不一样,怎么回事哪个对?给出
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/28 10:23:38
![帮忙算一个KPM算法的next数组值.a b a b a b b-1 0 0 1 2 3 4上面的是我算的.但是有本书上却是-1 0 0 1 2 1 2后面2位和我算的不一样,怎么回事哪个对?给出](/uploads/image/z/13749644-20-4.jpg?t=%E5%B8%AE%E5%BF%99%E7%AE%97%E4%B8%80%E4%B8%AAKPM%E7%AE%97%E6%B3%95%E7%9A%84next%E6%95%B0%E7%BB%84%E5%80%BC.a+++++++b+++++a+++++b++++++a+++++++b+++++++b-1+++++0+++++0+++++1++++++2+++++++3+++++++4%E4%B8%8A%E9%9D%A2%E7%9A%84%E6%98%AF%E6%88%91%E7%AE%97%E7%9A%84.%E4%BD%86%E6%98%AF%E6%9C%89%E6%9C%AC%E4%B9%A6%E4%B8%8A%E5%8D%B4%E6%98%AF-1+0+0+1+2+1+2%E5%90%8E%E9%9D%A22%E4%BD%8D%E5%92%8C%E6%88%91%E7%AE%97%E7%9A%84%E4%B8%8D%E4%B8%80%E6%A0%B7%2C%E6%80%8E%E4%B9%88%E5%9B%9E%E4%BA%8B%E5%93%AA%E4%B8%AA%E5%AF%B9%3F%E7%BB%99%E5%87%BA)
帮忙算一个KPM算法的next数组值.a b a b a b b-1 0 0 1 2 3 4上面的是我算的.但是有本书上却是-1 0 0 1 2 1 2后面2位和我算的不一样,怎么回事哪个对?给出
帮忙算一个KPM算法的next数组值.
a b a b a b b
-1 0 0 1 2 3 4
上面的是我算的.但是有本书上却是-1 0 0 1 2 1 2后面2位和我算的不一样,怎么回事哪个对?给出您的算法谢谢了.
next数组到底他娘的第一位是0还是-1啊.貌似2种都可以.那考试写那个啊.晕.我也觉得我写的对,但是那本书是软考书还是比较权威的么.无言.
帮忙算一个KPM算法的next数组值.a b a b a b b-1 0 0 1 2 3 4上面的是我算的.但是有本书上却是-1 0 0 1 2 1 2后面2位和我算的不一样,怎么回事哪个对?给出
明显是书上错了,因为KMP算法的NEXT记录对应的一定是当前字符之前与他字符相同的字符的下标,而-1 0 0 1 2 1 2 这个1 2中的1,b对应的是a,肯定就不对了.楼主写的是未优化版得KMP算法,就是这个函数:
void get_next(int * next,char * t)//next数组和t字符串
{
int i=0,j=-1,len;
len=strlen(t);
next[0]=-1;
while (i