洛谷P3375 - 【模板】KMP字符串匹配
2024-08-28 01:59:35
Description
模板题啦~
Code
//【模板】KMP字符串匹配
#include <cstdio>
#include <cstring>
int const L=1e6+10;
char s1[L],s2[L];
int nxt[L];
int main()
{
scanf("%s",s1+1); scanf("%s",s2+1);
int L1=strlen(s1+1),L2=strlen(s2+1);
nxt[0]=-1;
for(int i=1;i<=L2;i++)
{
int x=nxt[i-1];
while(x!=-1&&s2[x+1]!=s2[i]) x=nxt[x];
nxt[i]=x+1;
}
for(int i=0,j=0;i<=L1;i++)
{
if(j==L2) printf("%d\n",i-L2+1);
while(j&&s1[i+1]!=s2[j+1]) j=nxt[j];
if(s1[i+1]==s2[j+1]) j++;
}
for(int i=1;i<=L2;i++) printf("%d ",nxt[i]);
return 0;
}
最新文章
- 去年做了什么?OA。
- LoadRunner 11 安装及破解
- 【BZOJ-4310】跳蚤 后缀数组 + ST表 + 二分
- cach
- linxu ffmpeg 编译安装
- Tiff – 值得你体验一下的可视化的字体对比工具
- 服务器部署之 cap deploy:setup
- winston日志管理1
- 解决VS2010控制台程序运行结束不显示请按任意键继续
- C#调用Geocoding API进行地理编码与逆编码
- 如何实现Android重启应用程序代码 ?
- JDk 内部分工具 简述
- UIPageViewController跳跃切换的问题
- cocos2d-x中常见的场景切换
- Codeforces 158 D
- Git学习 -- 分支管理
- c++简单线程池实现
- 活代码LINQ——04
- Java微信二次开发(九)
- 关于java中生产者消费者模式的理解