int kmp(S,start,T,next[]){code
//s表明主串next
//t表明模式串co
//start表明開始位置return
//next[]表明next[j]tar
int i=start;
j=0;//t的起始位置
int result;//返回位置
whil(i<S.length&&j<T.length){
if(S.str[i]==T.str[j]){ i++; j++; } else if(j==0) i++; else j=next[j];//說明前j-1有相等的子串,就師下一次的比較位置
}
if(j==T.length)
result=i-T.length;
else result=-1;
return result;
}