摘要: int Index_KMP(String S,String T,int pos)
{
i=pos;j=1;//這里的串的第1個元素下標是1
while(i<=S.Length && j<=T.Length)
{
if(j==0 || S[i]==T[j]){++i;++j;} //注意到這里的j==0,和++j的作用就知道為什么規(guī)定next[1]=0的好處了
else j=next[j];//i不變(不回溯),j跳動
}
if(j>T.Length) return i-T.Length;//匹配成功
else return 0;
}
閱讀全文