kmp算法KMP模式匹配算法

kmp算法KMP模式匹配算法KMP算法是一种改进的字符串匹配算法,其关键是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的明 

求得模式的特征向量之后,基于特征分析的快速模式匹配算法(KMP模式匹配算法)与朴素匹配算法类似,只是在每次匹配过程中发生某次失配时,不再单纯地把模式后移一位,而是根据当前字符的特征数来决定模式右移的位数 

#include "string. h"#includeint KMPStrMatching(String T, String P, int. N, int startIndex){int lastIndex=T.strlen() -P.strlen();if((1 astIndex- startIndex)<0)//若 startIndex过大,则无法匹配成功return (-1);//指向P内部字符的游标int i;//指向T内部字符的游标int j=0;//指向P内部字符的游标for(i= startIndex; i 0)j=N[j-1];if(P[j]==T[i])j++;if(j ==P.strlen())return(1-j+1);//匹配成功,返回该T子串的开始位置}return (-1);}

以上内容由大学时代综合整理自互联网,实际情况请以官方资料为准。

相关