kmp算法基础
2024-10-08 11:02:04
https://www.luogu.com.cn/problemnew/solution/P3375
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e6+;
int kmp[maxn];
char a[maxn],b[maxn];
int main()
{
scanf("%s%s",a+,b+);
int lena=strlen(a+);
int lenb=strlen(b+);
int index=;
for(int i=;i<=lenb;i++){
while(index&&b[i]!=b[index+])
index=kmp[index];
if(b[index+]==b[i]) index++;
kmp[i]=index;
}
index=;
for(int i=;i<=lena;i++){
while(index>&&b[index+]!=a[i])
index=kmp[index];
if(b[index+]==a[i])
index++;
if(index==lenb) {cout<<i-lenb+<<endl;index=kmp[index];}
}
for(int i=;i<=lenb;i++)
printf("%d ",kmp[i]);
printf("\n");
}
最新文章
- 百度地图api的覆盖物样式与bootstrap样式冲突解决办法
- spi 10方式编写
- ActiveMQ开发与简介
- 【转】mybatis实战教程(mybatis in action)之八:mybatis 动态sql语句
- 【BZOJ】3319: 黑白树
- 未能加载文件或程序集&ldquo;System.Data.SQLite&rdquo;或它的某一个依赖项
- 如何添加WebService调用时的用户认证
- MAC SVN Phonegap
- C#核心语法
- MySql中,复制旧表结构到新表
- Oracle学习.Windows 命令行 启动ORACLE服务与实例
- 绿色mysql启动脚本
- Linux下包含头文件的路径问题与动态库链接路径问题
- Linux完整备份工具 - dump, restore(现在基本不用这两个)
- Python Pandas 简单使用之 API熟悉
- 常用的一些markdown格式
- python的运行机制和版本区别
- 【前端技术】web 开发常见问题--GET POST 区别
- 一个linux内核模块移植到低版本时发生的异常
- 【转】Spring学习---Spring 学习总结
热门文章
- 【33】卷积步长讲解(Strided convolutions)
- Java(四)输出和输入函数
- 【你不知道的javaScript 中卷 笔记2】javaScript中的类型转换
- [CF1303F] Number of Components - 并查集,时间倒流
- asp.net core 配置文件动态更新
- JS绑定事件处理函数及处理流程
- react-native构建基本页面6---打包发布
- Hadoop报错:org.apache.hadoop.security.AccessControlException: Permission denied: user=xxxx
- 虚拟机floppy0
- CVE-2019-0708 远程桌面代码执行漏洞复现