首页 > 编程知识 正文

kmp算法的例题,字符串模式匹配算法

时间:2023-05-04 09:02:25 阅读:140049 作者:4420

# include stdio.h # include string.husingnamespacestd; intBF(chara (,char B[] ) )、intI=0、j=0、count=0; while(Istrlen(a ) j strlen(B ) b ) ) { count; //两个字符串被比较到末尾(到末尾只有一个跳出循环) if ) a(I )==b ) j ) ) I; j; (else ) /匹配失败指针i=i - j 1; j=0; } }返回计数; /*if(j=b.Length () ) return i - B.length ); else return count; //voidnext(chart )、int next[] ) )、{ int i=1; next[1]=0; int j1=0; while(Istrlen(t ) ) if ) J1==0|||t[I-1]==t[J1-1] ) I; j1; next[i]=j1; }else{ j1=next[j1]; }}intkmp(chars (,char T[] ) ) { int count1=0; int next[10]; next(t,next ); int i=1; int j1=1; while(I=strlen ) s ) J1=strlen(t ) ) { count1; if(J1==0|||s[I-1]==t[J1-1] ) I; j1; } else { j1=next[j1]; }//if(J1Strlen(T(T ) )/returnI-(int ) strlen ) t ); //}返回计数1; (}int main ) ) { char S[100],T[100]; 请输入printf ('匹配字符串:n ' ); gets(s; printf ('请输入匹配字符串:n ); gets(t; intm=BF(s,t ); intn=kmp(s,t ); printf(BF算法的子字符串比较次数(d(n ),m ); printf(kmp算法的子字符串比较次数(d(n ),n ); 返回0; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。