当前位置: 首页 > news >正文

数据结构--串

本文为复习的草稿笔记,,,有点乱

1. 串的基本概念和基本操作

串是由零个或多个字符组成的有限序列

2. 串的存储结构

3.串的应用

模式匹配

BF算法(简单匹配算法

穷举法

算法思路:从子串的每一个字符开始依次与主串的字符进行匹配

int Index_BF(SSTring S, SSTring T)
{int i=1;j=1;while (i<=S.len && j<= T.len){if(S[i]==T[j]) {i++;j++;}else {i=i-j+2;//(i=i-(j-1)+1)j=1;}if(j>T.len) return i-T.len;//匹配成功,返回第一个字符的下标else return 0;}
}
KMP算法 (快速匹配算法

在BF算法上进行加速

算法思路:

利用部分匹配的结果加速模式串的滑动速度,主串的i指针不需要回溯,子串的j指针也不一定要回溯到头

int Index_KMP(Sstring S,Sstring T, int pos)
{int i=pos,j=1;while(i<=S.len && j<=T.len){if(j==0||s[i]==T[j]){i++;j++}else j=next[j];}if(j>T.len) return i-T.len;else return 0;
}

子串的指针j的回溯,通过next[j] 来计算

next[j] 只与子串有关,与主串无关

next数组:当前字符之前的字符串中最长相等的真前后缀(下面的例子有点细小的差别。。

。。。主串被遍历过的后缀和字串的前缀---

C

 

void get_next(SString T, int next[])
{i=1;nexe[1]=0;j=0;while(i<T[0]){if(j==0|| t[i]==T[j]) {i++;j++;next[j]=j;}else j=next[j];}
}

 

相关文章:

数据结构--串

本文为复习的草稿笔记&#xff0c;&#xff0c;&#xff0c;有点乱 1. 串的基本概念和基本操作 串是由零个或多个字符组成的有限序列 2. 串的存储结构 3.串的应用 模式匹配 BF算法&#xff08;简单匹配算法 穷举法 算法思路&#xff1a;从子串的每一个字符开始依次与主串…...

RabbitMQ交换机(3)-Topic

1.Topic模式 RabbitMQ的Topic模式是一种基于主题的消息传递模式。它允许发送者向一个特定的主题&#xff08;topic&#xff09;发布消息&#xff0c;同时&#xff0c;订阅者也可以针对自己感兴趣的主题进行订阅。 在Topic模式中&#xff0c; 主题通过一个由单词和点号组成的字…...

前端密钥怎么存储,以及临时存储一些数据,如何存储才最安全?

前端密钥存储安全的方案&#xff1a; 1、使用浏览器提供的本地存储&#xff1a;现代浏览器提供了本地存储机制&#xff0c;例如 Web Storage&#xff08;localStorage 和 sessionStorage&#xff09;或 IndexedDB。可以将密钥存储在这些本地存储中&#xff0c;并使用浏览器提供…...

第16章_网络编程拓展练习(TCP编程,UDP编程)

文章目录 第16章_网络编程拓展练习TCP编程1、学生与老师交互2、查询单词3、拓展&#xff1a;查询单词4、图片上传5、拓展&#xff1a;图片上传6、多个客户端上传文件7、群聊 UDP编程8、群发消息 第16章_网络编程拓展练习 TCP编程 1、学生与老师交互 案例&#xff1a;客户端模…...

深入Docker5:安装nginx部署完整项目

目录 准备 为什么要使用nginx mysql容器构建 1.删除容器 2.创建文件夹 3.上传配置文件 4.命令构建mysql容器 5.进入mysql容器&#xff0c;授予root所有权限 6.在mysql中用命令运行sql文件 7.创建指定数据库shop 8.执行指定的sql文件 nginx安装与部署 1.拉取镜像 2…...

HBASE学习四:常用命令汇总梳理(包括数据库、zk、hdfs相关操作与配置)

1、服务状态 1、后台查询 hbase shell #进入hbase的shell页面,配置环境变量可直接执行。status #查看当前服务状态status detailed #查看当前详细服务信息,包括master的active和standby信息version 查看版本信息 2、页面查询 http://HMASTERip:16010 #查看master 状态 …...

Android平台RTSP|RTMP播放端实时快照保存JPG还是PNG?

JPG还是PNG&#xff1f; 实际上&#xff0c;在前几天的blog&#xff0c;我们有从压缩方式、图像质量、透明效果、可编辑性等各方面做过差异化的介绍。 压缩方式&#xff1a;JPG是一种有损压缩格式&#xff0c;通过丢弃图像数据来减小文件大小&#xff0c;因此可能会损失一些图…...

【人工智能】之深入了解嵌入模型中的 Token:NLP 中的语义之旅(1)

自然语言处理&#xff08;NLP&#xff09;领域的发展在很大程度上受到了嵌入模型的推动。嵌入模型通过将文本中的每个 token 转换为向量表示&#xff0c;为计算机理解语言提供了强大的工具。本文将深入研究嵌入模型中的 token&#xff0c;揭示它在 NLP 中的重要性以及在语义表示…...

UML-实现图(组件图和部署图)

实现图是从系统的层次来描述的&#xff0c;描述硬件的组成和布局&#xff0c;描述软件系统划分和功能实现。 UML-实现图&#xff08;组件图和部署图&#xff09; 一、组件图1.组件图的元素&#xff08;1&#xff09;组件&#xff08;2&#xff09;接口&#xff08;3&#xff09…...

苹果Find My可查找添加32件物品,伦茨科技ST17H6x芯片加速产品赋能

苹果最近更新的支持文档证实&#xff0c;从 iOS 16 开始&#xff0c;"Find My"可查找添加物品从16件增加到32件&#xff0c;AirTag 和“查找”网络中的物品利用“查找”网络的强大功能来发挥作用&#xff0c;这个网络由数亿台加密的匿名 Apple 设备构成。“查找”网络…...

postman后端测试时invalid token报错+token失效报错解决方案

报错信息1{“msg”:“invalid token”,“code”:401} 没有添加postman的token信息 报错信息2{“msg”: “token失效&#xff0c;请重新登录”,“code”: 401} 写了token但是token信息写的是错的,会提示token失效 解决方案如下 仅写完后端的查询,但是前端还没写的时候,可…...

使用 mybatis-plus 的mybaits的一对多时, total和record的不匹配问题

应该是框架的问题&#xff0c;去官方仓库提了个issues&#xff0c;等回复 https://github.com/baomidou/mybatis-plus/issues/5923 回复来了&#xff1a; 背景 发现 record是两条&#xff0c;但是total显示3 使用resultMap一对多时&#xff0c;三条数据会变成两条&#xff0…...

SpringCloud之Nacos

一、微服务介绍 1. 什么是微服务 2014年,Martin Fowler(马丁福勒 ) 提出了微服务的概念,定义了微服务是由以单一应用程序构成的小服务,自己拥有自己的进程与轻量化处理,服务依业务功能设计,以全自动的方式部署,与其他服务使用 HTTP API 通信。同时服务会使用最小的规模…...

小封装高稳定性振荡器 Sg2520egn / sg2520vgn, sg2520ehn / sg2520vhn

描述 随着物联网和ADAS等5G应用的实施&#xff0c;数据流量不断增长&#xff0c;网络基础设施变得比以往任何时候都更加重要。IT供应商一直在快速建设数据中心&#xff0c;并且对安装在数据中心内部/内部的光模块有很大的需求。此应用需要具有“小”&#xff0c;“低抖动”和“…...

使用 Apache POI 更新/覆盖 特定的单元格

使用 Apache POI 更新特定的单元格 一. 需求二. 实现三. 效果 一. 需求 将以下表中第4行&#xff0c;第4列的单元格由“张宇”更新为“汤家凤”&#xff0c;并将更行后的结果写入新的Excel文件中&#xff1b; 二. 实现 使用Apache POI&#xff0c;可以精确定位到需要更改的单…...

Spring Boot整合MyBatis-Plus

引言 在现代软件开发中&#xff0c;我们经常需要处理大量的数据。为了有效地管理这些数据&#xff0c;我们需要使用一些强大的框架。其中&#xff0c;Spring Boot和MyBatis-Plus是两个非常流行的框架。Spring Boot是一个基于Spring的开源Java框架&#xff0c;可以用于创建独立…...

springboot项目之AOP角色权限的判断

引言 开发的项目中&#xff0c;可能遇到不同的角色&#xff0c;不同的角色有不通的权限定义。AOP切面是个很好的解决方案。 实践 1. 定义MerchRoles Retention(RetentionPolicy.RUNTIME) Target(ElementType.METHOD) public interface MerchRoles {} 2. 定义切点 public c…...

Twincat PLC 跳出循环

在TwinCAT PLC编程中&#xff0c;要跳出循环结构通常可以通过以下几种方式实现&#xff1a; 使用Break指令&#xff1a; 在TwinCAT 3的PLC编程环境中&#xff08;IEC 61131-3标准&#xff09;&#xff0c;可以使用BREAK指令来立即终止最内层的循环。例如&#xff0c;在FOR或WH…...

【Leetcode】277.搜寻名人

一、题目 1、题目描述 假设你是一个专业的狗仔,参加了一个 n 人派对,其中每个人被从 0 到 n - 1 标号。在这个派对人群当中可能存在一位 “名人”。所谓 “名人” 的定义是:其他所有 n - 1 个人都认识他/她,而他/她并不认识其他任何人。 现在你想要确认这个 “名人” 是…...

小白数学建模 Mathtype 7.7傻瓜式下载安装嵌入Word/WPS以及深度使用教程

数学建模Mathtype的下载安装嵌入Word/WPS以及深度使用教程 一 Mathtype 的下载安装1.1 安装前须知1.2 下载压缩包1.3 安装注册 二 嵌入Word/WPS2.1 嵌入Word2.1.1 加载项嵌入 Word2.1.2 宏录制嵌入 Word 2.2 嵌入 WPS2.2.1 加载项嵌入 WPS2.2.2 宏录制嵌入 WPS 2.3 嵌入时报错解…...

STM32F103移植FreeRTOS实战:从零构建多任务系统

1. 项目概述&#xff1a;为什么要在STM32F103上跑RTOS&#xff1f; 如果你玩过一阵子STM32&#xff0c;特别是经典的“蓝桥杯”神板——STM32F103C8T6&#xff0c;那你大概率已经习惯了在 main 函数里写一个 while(1) 大循环&#xff0c;里面塞满了各种 HAL_Delay 和状态…...

基于8ms平台的嵌入式GUI开发实践:智能家居86盒UI设计与实现

1. 项目概述&#xff1a;当智能家居遇上8ms&#xff0c;一个86盒的UI革命 最近在折腾一个智能家居的改造项目&#xff0c;核心是想把家里那些老旧的开关面板&#xff0c;换成能联网、能自定义、还能显示点信息的“智能大脑”。市面上现成的智能开关要么功能固化&#xff0c;要么…...

告别手动重启!用Python+PyAutoGUI写个游戏防崩溃守护脚本(附完整源码)

告别手动重启&#xff01;用PythonPyAutoGUI打造游戏防崩溃守护脚本 深夜挂机刷副本时突然游戏崩溃&#xff0c;第二天醒来发现角色还在主城发呆&#xff1f;竞技场自动匹配因为断线重连失败而错过赛季奖励&#xff1f;这些问题对于MMO玩家和挂机游戏爱好者来说简直如同噩梦。本…...

聚合物半导体薄膜:柔性电子皮肤如何实现无感健康监测

1. 项目概述&#xff1a;从“硬核”到“柔韧”的健康监测革命如果你还在用那些又厚又硬、贴着皮肤半天就发痒发红的老式健康监测电极&#xff0c;是时候了解一下这个正在改变游戏规则的新玩意儿了——聚合物半导体薄膜。这可不是什么实验室里的遥远概念&#xff0c;它正从顶尖期…...

Folcolor:14种色彩让Windows文件夹管理效率提升300%

Folcolor&#xff1a;14种色彩让Windows文件夹管理效率提升300% 【免费下载链接】Folcolor Windows explorer folder coloring utility 项目地址: https://gitcode.com/gh_mirrors/fo/Folcolor 你是否厌倦了在无数个黄色文件夹中寻找目标文件&#xff1f;Folcolor为你带…...

终极LibreDWG CAD转换完全指南:5个高效使用技巧

终极LibreDWG CAD转换完全指南&#xff1a;5个高效使用技巧 【免费下载链接】libredwg Official mirror of libredwg. With CI hooks and nightly releases. PRs ok 项目地址: https://gitcode.com/gh_mirrors/li/libredwg LibreDWG是一款强大的开源CAD文件处理库&#…...

RISC-V开发板免费申请与实战指南:从环境搭建到项目移植

1. 项目概述&#xff1a;一次难得的RISC-V生态深度体验机会最近在开发者圈子里&#xff0c;一个消息引起了不小的讨论&#xff1a;可以免费申请到基于RISC-V架构的生态开发板。这对于我们这些常年和ARM、x86打交道的开发者来说&#xff0c;无疑是一个极具吸引力的“尝鲜”机会。…...

3分钟学会在Windows上安装安卓应用:APK-Installer完整指南

3分钟学会在Windows上安装安卓应用&#xff1a;APK-Installer完整指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 想在Windows电脑上直接运行安卓应用&#xff0c;…...

Node.js 项目如何无缝集成 Taotoken 实现大模型 API 统一调用

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Node.js 项目如何无缝集成 Taotoken 实现大模型 API 统一调用 在 Node.js 项目中引入大模型能力&#xff0c;开发者常常需要面对一…...

无王无帝定乾坤,来自田间第一人:海棠铁哥定千秋

无王无帝定乾坤来自田间第一人序章山河叹岁月悠悠流转&#xff0c;山河几度浮沉。 历代豪杰争雄逐鹿&#xff0c;到头来霸业如烟&#xff0c;功名易逝。 终究难锁万古山河&#xff0c;难稳世代人心。第一章天命 世间最难得千秋基业&#xff0c;天下最珍贵万世清平。 恰逢天命归…...