Understanding of next[j]

//Algorithm to find next[j]

void getNext(T,next[j]){

int j=1;

k=0;//最长相等值 

next[0]=-1;//为了好计算 ,故这样设值 

next[1]=0;//第二个元素前的next[1]必等于0

while(j<T.length-1){//因为每次求得的是next[j+1],顾而

   if(T.str[j]==T.str[k]){

   	next[j+1]=k+1;

   	j++;

   	k++;
   } 

   else if(k==0){

   	next[j+1]=0;

   	j++
   }

   else
   k=next[k];//k不等于0的情况 

}

}

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325548544&siteId=291194637