数据结构——字符串匹配KMP

server/2025/2/26 2:09:59/

首先明确几个概念:

s[ ]: 主串

p[ ]: 模式串(用于匹配)

next[ j ]:以p[ j ]结尾的p字符串的前后缀最大匹配值,也是当p[ j+1 ]与s[ i ]不匹配时,j指针移动的下一位置。(需要预处理出来)

AcWing - 算法基础课

代码如下:

#include<iostream>using namespace std;const int N = 100100,M = 1000100;char s[M],p[N];int ne[N];int main()
{int n,m;cin >> n >> p+1 >> m >> s+1;//求next数组/*求next数组和匹配过程类似因为next[i]是以i结尾的(包括i)字符串的最大前后缀匹配值然后这个过程相当于p串是前缀匹配,s串是后缀匹配,在每一个位置进行遍历*/for(int i=2,j=0;i<=n;i++)//i=2开始是因为next[1]=0;{while(j&&p[i]!=p[j+1])j=ne[j];if(p[i]==p[j+1])j++;//这里是两个p串ne[i]=j;}//kmpfor(int i=1,j=0;i<=m;i++){while(j&&s[i]!=p[j+1])j=ne[j];if(s[i]==p[j+1])j++;if(j==n){//匹配上了一个输出开头下标cout<<i-n<<" ";j=ne[j];}}return 0;
}


http://www.ppmy.cn/server/170662.html

相关文章

Qt 中集成mqtt协议

一&#xff0c;引入qmqtt 库 我是将整个头文件/源文件都添加到了工程中进行编译&#xff0c;这样 跨平台时 方便&#xff0c;直接编译就行了。 原始仓库路径&#xff1a;https://github.com/emqx/qmqtt/tree/master 二&#xff0c;使用 声明一个单例类&#xff0c;将订阅到…

Word(2010)排版技巧

设置标题样式 选择需要设置的标题 如下图所示。选择文字后&#xff0c;点击对应的样式即可设置。 设置标题格式 设置字体格式 设置段落格式 显示所有样式 标题样式展示 建议 建议新建一个正文样式&#xff0c;可以命名为正文1&#xff0c;因为所有的样式参考的“样式基准…

【Qt】数据库编程(SQLite API)

目录 一、文件夹的配置 二、编程工具的配置 1.指定库文件及其输出可执行文件位置 2.导入新添加的sqlite3.h头文件​编辑 三、使用SQLite常见API函数 1.打开数据库 2.关闭数据库 3.获取错误代码 4.获取错误信息 5.预编译SQL语句 6.绑定条件变量 7.结果集获取 8.行数据…

前端面试真题 2025最新版

文章目录 写在前文CSS怪异盒模型JS闭包闭包的形成闭包注意点 CSS选择器及优先级优先级 说说flex布局及相关属性Flex 容器相关属性&#xff1a;Flex 项目相关属性 响应式布局如何实现是否用过tailwindcss&#xff0c;有哪些好处好处缺点 说说对象的 prototype属性及原型说说 pro…

科普:“git“与“github“

Git与GitHub的关系可以理解为&#xff1a;Git是一种软件工具&#xff0c;而GitHub则是一个在线平台&#xff0c;它们是“一家子”。二者的关联最直接体现在你通过Git在GitHub仓库中clone软件包到你的机器中来。 具体来说&#xff1a; 一、Git 定义&#xff1a;Git是一个开源的…

Linux基本指令(上)

文章目录 目录1. Linux的介绍2. 基本指令2.1 ls 指令2.2 pwd 命令2.3 cd 指令2.4 touch 指令2.5 mkdir 指令2.6 rmdir 指令 && rm 指令2.7 man 指令2.8 cp 指令 目录 Linux的介绍基本指令 1. Linux的介绍 2. 基本指令 2.1 ls 指令 语法&#xff1a; ls [选项] [目录…

DeepSeek模型量化

技术背景 大语言模型&#xff08;Large Language Model&#xff0c;LLM&#xff09;&#xff0c;可以通过量化&#xff08;Quantization&#xff09;操作来节约内存/显存的使用&#xff0c;并且降低了通讯开销&#xff0c;进而达到加速模型推理的效果。常见的就是把Float16的浮…

【C# 数据结构】队列 FIFO

目录 队列的概念FIFO (First-In, First-Out)Queue<T> 的工作原理&#xff1a;示例&#xff1a;解释&#xff1a; 小结&#xff1a; 环形队列1. **FIFO&#xff1f;**2. **环形缓冲队列如何实现FIFO&#xff1f;**关键概念&#xff1a; 3. **环形缓冲队列的工作过程**假设…