数据结构学习笔记(Ⅳ):串

news2025/8/3 21:58:56

目录

1 串

1.1 定义与基本操作

1.定义

2.基本操作

1.2 串的存储结构

1.顺序存储

2.链式存储

3.基于顺序存储实现基本操作

2 串的朴素模式匹配算法

2.1 朴素模式匹配算法

2.2 KMP算法

1.优化思路

2.计算next数组

2.3 KMP算法优化


1 串

1.1 定义与基本操作

1.定义

串(S='abcdef...' )就是字符串,是由零或多个字符组成的有限序列。

子串是串中任意连续的字符组成的子序列,主串是包含子串的串。

串中的位置从1开始。

2.基本操作

1.2 串的存储结构

1.顺序存储

·静态数组

·动态数组

定义串的地址指针,在堆区开辟内存空间

2.链式存储

 

3.基于顺序存储实现基本操作

·求子串

·比较操作 

·定位操作 

2 串的朴素模式匹配算法

2.1 朴素模式匹配算法

模式串:不一定在主串中的串。

串的模式匹配:在主串中寻找与模式串相同的子串

若模式串长度m,主串长度n,则最好时间复杂度为O(m),最坏时间复杂度为O(nm)

朴素模式匹配算法缺点:当某子串与模式串部分匹配,主串的扫描指针会回溯,导致时间开销增加。

2.2 KMP算法

1.优化思路

主串指针不回溯,模式串指针回溯

2.计算next数组

串的前缀:包含第一个字符,且不包含最后一个字符的子串

串的后缀:包含最后一个字符,且不包含第一个字符的子串

当第j个字符匹配失败,由前1~j-1个字符组成的串记为S

next[j] = S的最长相等前后缀长度 + 1,next[1] = 0

设模式串为'ababaa'

序号j123456
模式串ababaa
next[j]0(固定)1(固定)1234

2.3 KMP算法优化

对next数组进行优化得到nextval数组

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/34738.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

02.OpenWrt-进入开发板系统

02.OpenWrt-进入开发板系统 进入系统就是连接到系统shell,可是输入命令.说到shell第一个想到windows系统的PowerShell,在windows系统上多使用图形界面的方式进行与系统交互,毕竟windows的精髓就是图形界面,很少使用PowerShell命令.其实PowerShell的功能也非常强大,有时候记住一…

Flutter高仿微信-第38篇-单聊-转账

Flutter高仿微信系列共59篇,从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。 详情请查看 效果图: 详情请参考 Flutter高仿微信-第29篇-单聊 , 这里只是提取小视频的部…

【C++】Cmake使用教程(看这一篇就够了)

文章目录引言一 环境搭建二 简单入门2.1 项目结构2.2 示例源码2.3 运行查看三 编译多个源文件3.1 在同一个目录下有多个源文件3.1.1 简单版本3.1.1.1 项目结构3.1.1.2 示例代码3.1.1.3 运行查看3.1.2 进阶版本3.1.2.1 项目结构3.1.2.2 示例源码3.1.2.3 运行查看3.2 在不同目录下…

热门编程语言那么多,该选择哪个

编程语言那么多,该怎么选呢?无论是对找工作、还是打算转行新领域的同学们,起初都会有这样的困扰。这时候了解清楚编程语言的种类,到底该选哪个方向?将来能从事哪些岗位的工作?就比较重要了。与其盲目随从他…

CAS号:376364-38-4,rCRAMP (rat)

rCRAMP (rat) 是一种大鼠组织蛋白酶相关的抗菌肽,有助于大鼠脑肽/蛋白质提取物的抗菌活性。rCRAMP (rat) 是大鼠中枢神经系统先天免疫系统的关键参与者。rCRAMP (rat) is the rat cathelin-related antimicrobial peptide. rCRAMP (rat) contributes to the antibac…

计算机网络协议------从入门到深化

计算机网络通信 什么是通信协议 简单来说,通信协议就是计算机之间通过网络实现通信时事先达成 的一种“约定”;这种“约定”使那些由不同厂商的设备,不同CPU及不 同操作系统组成的计算机之间,只要遵循相同的协议就可以实现通 信。…

数据治理容易走进哪些误区?

在业界,大家都为如何做好数据治理而感到困惑。数据治理工作一定要先摸清楚数据的家底,规划好路线图,再进行决策。不然很容易走进误区中,无法自拔。下面总结了数据治理的7个常见误区,并给出一定建议,希望给予…

ERD Online 4.0.3_fix 元数据在线建模(免费、私有部署)

❝ 修复数据源导入的元数据,在没有中文注释修改的时候,导致表消失修复页面刷新导致404修改是否在关系图中显示的提示一键部署增加两种部署方式:IPPORT、DOMAIN增加手动部署方式、极大程度的实现部署定制化❞以 「root」 用户登录 Linux 主机执…

面试:dumpsys meminfo 内存信息含义

查看内存信息: adb shell dumpsys meminfo dumpsys meminfo显示的信息如图所示: 这里仅介绍我们需要重点关注的字段: Dalvik Heap:虚拟机占用的内存,可以理解为Java层占用的内存。Native Heap:Native层占…

python 循环引用的解决方法

目录 1、问题描述 2、原因 3、示例 4、解决办法 1、问题描述 编写python代码,运行中出现了:‘most likely due to a circular import ’ 这样的报错。 2、原因 循环引用问题,即A引用了B,B又引用了A,造成循环引用…

ctp交易接口股票怎么查询历史数据?

针对于ctp交易接口股票历史数据的查询,其基本原理就是利用api接口开发子系统最终就是开发完成并暴露一个标准的HTTPAPI接口,并将接口注册和接入到API网关。API设计和开发的核心思想仍然应该是基于领域对象建模驱动,通过领域对象建模很好的实现…

激光数据去畸变

机器人在使用激光雷达时必然会遇到的一个问题就是激光雷达数据去畸变。为什么会产生畸变呢,这是因为激光雷达产生激光数据时如果机器人在运动,那么就会产生运动畸变。 在ros下使用激光雷达时,激光数据是相对于激光本体坐标系的。画个图看下会…

【无人机】基于SDRE对NPS II无人机进行点对点(调节)控制(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

iwebsec靶场 SQL注入漏洞通关笔记1- 数字型注入

目录 文章目录 前言 第01关 数字型注入 1.源码分析 2. sqlmap渗透 总结 前言 iwebsec靶场的SQL注入关卡共13关SQL注入漏洞,覆盖了数字型注入、字符型注入、报错型盲注、布尔型盲注、时间型盲注以及各种过滤绕过的注入,外加上二次注入,…

Recommendation Fairness: From Static to Dynamic 阅读笔记

论文链接https://arxiv.org/abs/2109.03150v1 Section 1 引言 越来越多的推荐系统开始将推荐建模为一个马尔可夫决策过程,并使用强化学习来解决这个问题。从而推荐系统场景下的公平性研究便面临着一个从静态评价与一次性干预static evaluation and one-shot interv…

CSS3 动画

变形 transform 在CSS3中,动画效果包括3个部分:变形(transform)、过渡(transition)、动画(animation) translate()平移 transform: translateX(x);    /*沿x轴方向平移*/ tran…

(十)死信队列

死信队列1、概念2、死信产生的原因3、代码实现3.1. 流程图3.2. 消息TTL 过期3.3. 队列达到最大长度3.4. 消息被拒1、概念 某些时候由于特定的原因导致 queue 中的某些消息无法被消费,这样的消息如果没有 后续的处理,就变成了死信,有死信自然就…

(九)RabbitMQ交换机(Exchange)

交换机Exchange1、交换机1.1. Exchanges 概念1.2. Exchanges 的类型1.3. 无名exchange(默认交换机)2、临时队列3、绑定(bindings)4、Fanout(发布/订阅)5、Direct exchange、6、Topics在这里插入图片描述1、…

学生HTML个人网页作业作品 基于HTML+CSS+JavaScript明星个人主页(15页)

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

0105 蓝桥杯真题08

/* * 中国古代文献中,曾记载过“大衍数列”, 主要用于解释中国传统文化中的太极衍生原理。 * 它的前几项是:0、2、4、8、12、18、24、32、40、50 ... * 其规律是:对偶数项,是序号平方再除2,奇数项,是序号…