KMP模板
来源:互联网 发布:c语言大小写字母互换 编辑:程序博客网 时间:2024/06/10 19:44
kmp一种快速的字符串匹配算法,不是很好理解,感觉B站有个视频做的特别好,跟大家分享下
视频连接:http://www.bilibili.com/video/av3246487/?from=search&seid=13990827196865923065
kmp模板
代码:
#include <iostream>#include <string>#include <cstdio>using namespace std;const int maxn=10000;int fail[maxn];void getFail(string zi){ fail[0]=0,fail[1]=0; for(int i=1;i<zi.size();i++){ int j=fail[i]; while(j&&zi[i]!=zi[j]) j=fail[j]; fail[i+1]=zi[i]==zi[j]?j+1:0; }}void kmp(string fu,string zi){ getFail(zi); int j=0; for(int i=0;i<fu.size();i++){ while(j&&zi[j]!=fu[i]) j=fail[j]; if(zi[j]==fu[i]) j++; if(j==zi.size()) printf("找到了下标位置是:%d\n",i-zi.size()+1); }}int main(){ string fu; string zi;std::ios::sync_with_stdio(false);//这据话提高cin的速度 while(cin>>fu>>zi) kmp(fu,zi);}
0 0
- KMP模板
- KMP 模板
- kmp模板
- kmp模板
- kmp模板
- KMP模板
- kmp模板
- kmp模板
- KMP 模板
- 【模板】KMP
- KMP模板
- KMP模板
- 【KMP 模板】
- KMP模板
- KMP 模板
- kmp模板
- KMP模板
- KMP 模板
- 获取MySql每一列的数据类型和长度默认值等信息
- 大数据问题(九章算法)
- android组件之DrawerLayout(抽屉导航)-- 侧滑菜单效果
- 多渠道打包
- 点击空白处关闭弹出层
- KMP模板
- OS 模块
- 贱人都是这么矫情,垃圾的网站
- HDU-3697
- 时间转换
- Android程序Crash时的异常上报
- 浅谈未来的人工智能与奇点临近
- Fragment使用总结
- Node.js系列——(2)发起get/post请求