KMP算法(-)
来源:互联网 发布:js在线解密 编辑:程序博客网 时间:2024/05/21 14:51
今天简单的给大家介绍一下KMP算法,
#include "stdafx.h"#include "string.h"int Index_Kmp(char S[],char T[],int next[],int pos,int n,int m){int i =pos-1;int j=-1;while( (i <n)&&(j <m)){if(j==-1||S[i]==T[j]){++i;++j;}else{j = next[j]-1;//J被回溯}for(int k=0;k<=i;k++){printf("%c ",S[k]);}printf("\n");for(int k=0;k<=i;k++){if(k<i-j)printf(" ");elseprintf("%c ",T[k+j-i]);}printf("\n");if(j>=m)return i- m;}return 0;}
//求next数组void makeNext(const char T[],int next[]){int i =0;int j =-1;next[0] = 0;while(i<strlen(T)){if(j==-1||T[i]==T[j]){++i;++j;next[i] = j+1;}else{j = next[j]-1;//J被回溯}}}int _tmain(int argc, _TCHAR* argv[]){int pos =0;int next[32]={0};char S[]={'a','b','a','b','a','a','c','a','b','a','a','b','a','b','a','a','b','a','b','c','a','\0'};//原串char T[]={'a','b','a','b','a','a','b','a','\0'};//目标串int n = strlen(S);int m = strlen(T);makeNext(T,next);pos =Index_Kmp(S,T,next,0,n,m);//返回原串在目标串中的起始位置printf("%d\n",pos);getchar();return 0;}
</pre><p></p><p>程序运行步骤如下:</p><p><pre name="code" class="cpp">aaa ba ba b aa b aa b a ba b a ba b a b aa b a b aa b a b a aa b a b a aa b a b a a ca b a b a a ba b a b a a c a ba b a b a a c aa b a b a a c
a b a b a a c a aa b a b a a c a b a ba b a b a a c a b a a b aa b a b a a c a b a a a b a ba b a b a a c a b a a a ba b a b a a c a b a a aa b a b a a c a b a a b a ba b a b a a c a b a a b a a b aa b a b a a c a b a a b a b a b a ba b a b a a c a b a a b a b a a b a b aa b a b a a c a b a a b a b a a a b a b a aa b a b a a c a b a a b a b a a b a b a b a a ba b a b a a c a b a a b a b a a b a a b a b a a b aa b a b a a c a b a a b a b a a b a b a b a b a a b a
0 0
- kmp算法(转载)
- KMP算法(转)
- (精)kmp算法
- (四)KMP算法
- KMP算法(1)
- KMP算法(2)
- KMP算法(站位)
- KMP算法(1)
- KMP算法(2)
- Period(KMP算法)
- KMP算法(模板)
- KMP算法(二)
- KMP算法(一)
- KMP算法(转)
- KMP算法(一)
- KMP算法(二)
- KMP算法(三)
- HDOJ1868Oulipo(KMP算法)
- Quartz cron 表达式的格式
- 终于调通了从上到下,从驱动到应用,android
- AWK-详解著名的awk Oneliner,第三部分:选择性输出特定行
- android import library switch语句报错case expressions must be constant expressions
- php学员分享的PHP的高效率写法
- KMP算法(-)
- JS闭包回调的理解
- mysql 实战 or、in与union all 的查询效率
- nginx日志切割
- C++位操作符
- 3131: [Sdoi2013]淘金
- mac 安装 nginx 环境
- OpenGL 正交、透视投影
- MFC radio button 的用法