朴素模式匹配算法与KMP算法(非重点)
目录
- 一. 朴素模式匹配算法
- 1.1 什么是字符串的匹配模式
- 1.2 朴素模式匹配算法
- 1.3 通过数组下标实现朴素模式匹配算法
- 二. KMP算法
- 2.1 算法分析
- 2.2 用代码实现(只会出现在选择题,考察代码的概率不大)
- 三. 手算next数组
- 四. KMP算法的进一步优化
- 4.1 优化分析
- 4.2 手算nextval数组
\quad
一. 朴素模式匹配算法
\quad
\quad
1.1 什么是字符串的匹配模式
\quad

\quad

\quad
1.2 朴素模式匹配算法
\quad




\quad
1.3 通过数组下标实现朴素模式匹配算法
\quad


鄙人所写
int Indexps(SString* a, SString* b) //朴素模式匹配算法
{int i = 1, j = 1;for (int k = 0; i < a->length - b->length + 1; k++){while(j<=b->length){if (a->ch[i] != b->ch[j]){break;}i++;j++;}if (j > b->length){return i - b->length;}i = i - j + 2;j = 1;if (i >= a->length - a->length + 2){return 0;}}
}
优化



\quad
二. KMP算法
\quad
\quad
2.1 算法分析
\quad




\quad
\quad
\quad
第二种情况




根据上面的经验,i不变,变的是j,而j是未知, 我们不妨先把j指向0





\quad
2.2 用代码实现(只会出现在选择题,考察代码的概率不大)
\quad
先不管next数组如何实现, 会手动算就行


\quad
三. 手算next数组
\quad





\quad
\quad
使用next数组进行模式匹配


练习题

\quad
四. KMP算法的进一步优化
\quad
\quad
4.1 优化分析
\quad




\quad
\quad
\quad
\quad


\quad
\quad
不是所有的next数组的值都可以被优化

\quad

\quad
4.2 手算nextval数组
\quad






相关文章:
朴素模式匹配算法与KMP算法(非重点)
目录 一. 朴素模式匹配算法1.1 什么是字符串的匹配模式1.2 朴素模式匹配算法1.3 通过数组下标实现朴素模式匹配算法 二. KMP算法2.1 算法分析2.2 用代码实现(只会出现在选择题,考察代码的概率不大) 三. 手算next数组四. KMP算法的进一步优化4…...
[k8s源码]2.CURD deployment
加载kubernetes配置 使用 clientcmd方法,是通过"k8s.io/client-go/tools/clientcmd"包加载的。这个函数返回的是config和error两个值。可以看到返回的config是一个指针变量。 func clientcmd.BuildConfigFromFlags(masterUrl string, kubeconfigPath str…...
使用base64通用文件上传
编写一个上传文件的组件 tuku,点击图片上传后使用FileReader异步读取文件的内容,读取完成后获得文件名和base64码,调用后端uploadApi,传入姓名和base64文件信息,后端存入nginx中,用于访问 tuku.ts组件代码: <templa…...
Python深度学习
python深度学习,python代码定制, 可做创新点 创新思路 代码改进跑通 深度学习 Python代跑时间序列预测 分析 代码编写 python编程 深度学习算法 自然语言处理 神经网络跑通指导 爬虫调试代做 项目指导 定制帮做 改进 提升 创新 优化 Python Matlab C…...
django报错(三):No crontab program或got an unexpected keyword argument ‘user’
Crontab是linux系统上的定时管理模块,简单配置,灵活使用。但是要在windows使用必须借助Cygwin等虚拟工具,否则会报错“No crontab program”。如下图: python-crontab是其提供了python模块对crontab的访问,即可以通过p…...
数据库(创建数据库和表)
目录 一:创建数据库 二:创建表 2.1:创建employees表 2.2:创建orders表 2.3:创建invoices表 一:创建数据库 mysql> create database mydb6_product; Query OK, 1 row affected (0.01 sec) mysql&g…...
Log4j的原理及应用详解(一)
本系列文章简介: 在软件开发的广阔领域中,日志记录是一项至关重要的活动。它不仅帮助开发者追踪程序的执行流程,还在问题排查、性能监控以及用户行为分析等方面发挥着不可替代的作用。随着软件系统的日益复杂,对日志管理的需求也日…...
ubuntu系统Docker常用命令
1.查看docker是否开机启动 sudo systemctl list-unit-files | grep enable|grep docker 2.设置开机启动 sudo systemctl enable docker 3.关闭docker开机启动 sudo systemctl disable docker 4.开启docker服务 sudo service docker start 5.关闭docker服务 sudo servi…...
韦东山嵌入式linux系列-驱动设计的思想(面向对象/分层/分离)
1 面向对象 字符设备驱动程序抽象出一个 file_operations 结构体; 我们写的程序针对硬件部分抽象出 led_operations 结构体。 2 分层 上下分层,比如我们前面写的 LED 驱动程序就分为 2 层: ① 上层实现硬件无关的操作,比如注册…...
0/1背包
0/1背包 背包问题是DP最经典的类型之一,而0/1背包是最经典最基础的背包问题。 背包体积为 V V V, n n n种物品,每种物品只有1个,第 i i i种物品对应体积为 c i c_i ci,价值为 w i w_i wi,怎样装填能使…...
Linux的进程和权限的基本命令
目录 基本命令 man find date cal du ln exit grep 基本命令-帮助查询: wc cat more less head tail echo alias unalias 基本命令-进程管理: ps kill top 操作系统负载查看 用户分类: 程序用户 普通用户&#x…...
鼠标录制工具怎么挑选?9款电脑鼠标录制工具分享(2024)
你知道鼠标录制工具吗?鼠标录制工具通过记录和回放用户的操作,帮助自动化重复性任务,提高工作效率和精确性。它可以帮助用户简化很多繁琐的操作步骤,非常适合运用在电脑自动化任务、游戏自动化中,给大家整理了2024年9款…...
C1W4.LAB.Vector manipulation+Hash functions and multiplanes
理论课:C1W4.Machine Translation and Document Search 文章目录 Python 中的矢量操作Transforming vectorsExample 1Example 2 Frobenius Norm Hash functions and multiplanesBasic Hash tablesPlanesHash Function with multiple planesRandom PlanesDocument v…...
YOLOv8改进 | 检测头 | 融合渐进特征金字塔的检测头【AFPN4】
秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 专栏目录 :《YOLOv8改进有效…...
数据采集监控平台:挖掘数据价值 高效高速生产!
在当今数字化的时代,数据已成为企业非常宝贵的资产之一。然而,要充分发挥数据的潜力,离不开一个强大的数据采集监控平台,尤其是生产制造行业。它不仅是数据的收集者,更是洞察生产的智慧之眼,高效高速处理产…...
【算法笔记自学】第 9 章 提高篇(3)——数据结构专题(2)
9.1树与二叉树 #include <cstdio>int main() {int n, m;scanf("%d%d", &n, &m);printf(n m 1 ? "Yes" : "No");return 0; } 9.2二叉树的遍历 #include <cstdio> #include <vector> using namespace std;const int…...
Objective-C 中字符串的保存位置
在 Objective-C 中,字符串常量和动态创建的字符串(例如通过 stringWithFormat:、initWithString: 等方法创建的字符串)在内存中保存的位置一样么 ? 在 Objective-C 中,字符串常量和动态创建的字符串在内存中的保存位置…...
git 想要创建一个新的本地分支并检出远程分支的内容
如果你想要创建一个新的本地分支并检出远程分支的内容: git checkout -b feature-branch origin/feature-branch feature-branch 是你在本地创建的新分支名,origin/feature-branch 是远程分支的引用。 根据你检出的远程分支的名字而定 不知道名称的时…...
C语言学习笔记[24]:循环语句while②
getchar()的使用场景 int main() {char password[20] {0};printf("请输入密码:");//输入 123456 后回车scanf("%s", passwoed);//数组名本身就是数组地址printf("请确认密码:Y/N");int ch getchar();if(Y ch)printf(&…...
安全运营概述
安全运营概述 概述安全运营的工作对内安全运营工作对外安全运营工作品牌建设 概述 安全是一个过程,安全是靠运营出来的,公司会不断的有新业务的变更,新产品的发布,新版本的升级,技术架构的升级,底层系统的…...
3分钟学会:如何用Chrome扩展一键保存完整网页内容
3分钟学会:如何用Chrome扩展一键保存完整网页内容 【免费下载链接】full-page-screen-capture-chrome-extension One-click full page screen captures in Google Chrome 项目地址: https://gitcode.com/gh_mirrors/fu/full-page-screen-capture-chrome-extension…...
基于STM32的智能空调控制器设计:从环境感知到PID控制
1. 项目概述:从传统遥控到智能感知的跨越几年前,我还在为一个老旧的壁挂式空调发愁。每次回家,都得在闷热的房间里摸索遥控器,或者忍受着固定风向的直吹。后来接触了智能家居,发现市面上的智能空调要么价格昂贵&#x…...
别再死记硬背了!用Python+SymPy玩转含参积分,从卷积到信号处理一次搞懂
用PythonSymPy玩转含参积分:从数学原理到信号处理实战 数学中的含参积分常常让学习者感到抽象难懂,尤其是当涉及到极限交换、求导与积分顺序交换等概念时。但如果我们换一种方式——用代码和可视化来探索这些数学概念,一切就会变得清晰起来。…...
DS-PAW势函数计算全流程:从自洽到可视化分析
1. 从自洽到势函数:理解材料静电环境的关键一步在材料计算领域,我们常常听到“第一性原理计算”这个词,它意味着从最基本的物理定律出发,不依赖任何经验参数,去预测材料的性质。DS-PAW作为一款国产的平面波密度泛函理论…...
Linux 软件包管理(含上机实例)
文章目录软件包管理一、知识要点1.rpm作用2.安装问题1:文件已被安装问题2:文件冲突问题3:未解决依赖关系3.卸载rpm包4.升级rpm包5.查询已安装的软件包的数据库6.验证软件包完整性二、YUM的使用yum简述yum命令集三、上机任务6 软件包管理 一、…...
SOCD Cleaner:游戏按键智能优化工具,告别操作冲突的终极方案
SOCD Cleaner:游戏按键智能优化工具,告别操作冲突的终极方案 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 在竞技游戏和动作游戏中,精准的操作响应是胜利的关键。然而&…...
保姆级教程:STM32CubeMX配置ADC扫描模式,并封装一个灵活的Get_Adc()函数
STM32CubeMX实战:构建可动态配置的ADC多通道扫描系统 在嵌入式开发中,ADC(模数转换器)的灵活配置一直是硬件工程师面临的常见挑战。许多开发者在使用STM32CubeMX配置多通道ADC时,往往止步于基础扫描模式的应用…...
2026年238个好发CCF-A的强化学习idea全面汇总!
最近强化学习领域迎来重磅进展!强化学习之父R.S.Sutton 提出了一种全新的范式:Intentional Updates机制!其不再盲目预设步长,而是先设定一个预期的输出改变目标,实现了内存消耗降低10-100倍的同时,性能依然…...
2026-05-21:变成目标数组的最少操作次数。用go语言,给定两个长度相同的数组 nums 和 target。 - nums[i] 表示当前位置 i 当前的值。 - target[i] 表示当前位
2026-05-21:变成目标数组的最少操作次数。用go语言,给你两个长度为 n 的整数数组 nums 和 target。nums[i] 表示当前位置 i 的当前值,target[i] 表示你希望当前位置 i 最终变成的期望值。 你可以进行任意多次操作(可以不做&#x…...
Marshall 推出新款头戴式耳机 Milton ANC:音质续航兼得,售价 229 美元!
ZDNET 要点总结Milton ANC 是 Marshall 最新推出的头戴式耳机,在音质、耐用性和电池续航方面毫不妥协,售价为 229 美元。Marshall 宣布推出全新头戴式耳机——Milton ANC,它承诺在不牺牲电池续航的前提下,带来标志性的音效体验&am…...
