KMP模板
来源:互联网 发布:网络中介服务提供商 编辑:程序博客网 时间:2024/05/21 23:33
#include<cstdio>#include<cstring>using namespace std;char pat[1005],text[1000005];int lenp,lens;int next[1005],ans[1000005],pos;void cal_next(){next[1]=0;for(int i=2;i<=lenp;i++){int j=next[i-1];while(pat[j+1]!=pat[i]&&j) j=next[j];if(pat[j+1]==pat[i]) next[i]=j+1;else next[j]=0;}}void kmp(){int j=0;for(int i=1;i<=lens;i++){while(j&&text[i]!=pat[j+1]) j=next[j];if(text[i]==pat[j+1]) j++;if(j==lenp) ans[++pos]=i-lenp+1,j=next[j];}}int main(){freopen("kmp2.in","r",stdin);freopen("kmp2.out","w",stdout);scanf("%s%s",text+1,pat+1);lenp=strlen(pat+1);lens=strlen(text+1);cal_next();kmp();for(int i=1;i<=pos;i++) printf("%d\n",ans[i]);for(int i=1;i<=lenp;i++) printf("%d ",next[i]);return 0;}
0 0
- KMP模板
- KMP 模板
- kmp模板
- kmp模板
- kmp模板
- KMP模板
- kmp模板
- kmp模板
- KMP 模板
- 【模板】KMP
- KMP模板
- KMP模板
- 【KMP 模板】
- KMP模板
- KMP 模板
- kmp模板
- KMP模板
- KMP 模板
- 如何使用Android中的OpenGL ES媒体效果
- Android点击一次按钮,布局显示,第二次点击,布局消失;点一次出现,再点一次消失逻辑。
- Node.js作为服务器的文件上传
- 贪心算法之最优装载
- 【java】Java 中父类怎么调用子类的方法?
- KMP模板
- python _、__和__xx__的区别
- 编码技巧(一)命名
- linux安装JDK遇到的几个低级问题
- [51nod 1139]奇妙等式的解
- 贪心算法之单源最短路径Dijkstra
- 双网卡
- CXF 连接超时与请求超时的设置
- 228. Summary Ranges