【大渣】KMP算法
2015-07-24 15:07
176 查看
分为两个部分
首先需声明
//需加入<cstring>
第一部分为求Fail数组
第二部分
首先需声明
char A[],B[]; int F[],n,m,i,j; scanf("%s%s",&A[1],&B[1]); A[0]=B[0]=' '; n=strlen(A)-1; m=strlen(B)-1;
//需加入<cstring>
第一部分为求Fail数组
F[1]=j=0; for(i=2;i<=m;i++) { while(j>0&&B[j+1]!=B[i])j=F[j]; if(B[j+1]==B[i])j++: F[i]=j; }//此时B[ ]为子串
第二部分
j=0; for(i=1;i<=n;i++) { while(j>0&&B[j+1]!=A[i])j=F[j]; if(B[j+1]==A[i])j++; if(j==m) { cout<<"match:"<<i-m+1<<endl; j=F[j]; } }
相关文章推荐
- 划分树
- Django开发实战之URLconf详解
- hdu 4278——Faulty Odometer
- 图像处理------高斯一阶及二阶导数计算
- 学习qt遇到不显示菜单栏
- Android—开发自学历程(1)-Activity(2)-生命周期
- 如何将相册中的动态GIF图转化成NSData类型
- nginx 高并发配置参数(转载)
- Jersery——RESTful Web Services in Java,RESTful服务,Jersey+Spring实现REST服务调用
- [leetcode] 217.Contains Duplicate
- HYAppFrame(WinForm框架源码)安装部署指南
- apache kafka中server.properties配置文件参数说明
- hdu 4647
- #pragma comment 的作用
- 正则表达式 学习笔记
- js处理小数
- Java开发中的23种设计模式详解(转)
- ZJUTOJ大数乘
- Node.js的函数返回值
- (转)bat批处理的注释语句