3.字符串分析.ppt

3.字符串分析

3.3.2 KMP算法 假设已有next函数,则KMP算法如下: int StrIndex_KMP(char *s,char *t,int pos) /*从串s的第pos个字符开始找首次与串t相等的子串*/ { int i=pos,j=1,slen,tlen; while (i=s[0] j=t[0] ) /*都没遇到结束符*/ { if (j==0||s[i]==t[j]) { i++; j++; } else { j=next[j]; /*回溯*/ } } if (jt[0]) { return i-t[0]; /*匹配成功,返回存储位置*/ } else { return –1; } } O(m*n) OR O(m+n) 3.3.2 KMP算法 next函数值仅取决于模式本身而和主串无关。 从分析next函数的定义出发用递推的方法求next函数值。 该如何求next函数呢?

文档评论(0)

1亿VIP精品文档

相关文档