【字符串】常见算法题型及方法总结

server/2024/9/20 4:00:11/ 标签: 算法, 开发语言, c++, 数据结构, leetcode

什么是字符串?

字符串是若干字符组成的有限序列,可以理解为一个字符数组。在C++中提供了一个string类,那我们可能会想vector<char>和string有什么区别呢。在含义和基本操作方面基本是没有区别的,但是string提供了更多相关接口,比如string重载了+,而vector没有。所以我们一般会通过定义一个string类来处理字符串。

常见题型:

1. 反转字符串

2. 反转字符串Ⅱ

3. 替换数字

4.翻转字符串里的单词

5.右旋字符串

6.重复的子字符串

常见方法:

1. 当需要按照固定规律一段一段处理字符串时,可以在for循环的表达式上做改变,即不一定非要使用i++

2. 整体翻转再局部翻转的思想

3. 双指针法

4. KMP算法:主要思想是当出现字符串不匹配时,可以知道一部分之前已经匹配的文本内容,可以利用这些信息避免从头再去做匹配了。KMP可以用来解决匹配问题和重复字串问题。其中关键点是前缀和后缀。前缀是指不包含最后一个字符的所有以第一个字符开头的连续字串,后缀是指不包含第一个字符的所有以最后一个字符结尾的连续子串。


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

相关文章

C# —— 位运算符

简介 位运算符 主要是用于数值类型计算 运算方式: 将数值转换为二进制 在进行位运算 返回的是一个二进制转十进制的数值 如果二进制数 不够位置 则在前面补零 位与 & 规则: 连接两个数值进行位运算 将数值转换为二进制进行计算 对位运算 有零则零 int a 1; int b 5…

解决python从TD数据库取50w以上大量数据慢的问题

1.问题背景描述 python项目中的时序数据都存放在TD数据库中&#xff0c;数据是秒级存入的&#xff0c;当查询一周数据时将超过50w数据量&#xff0c;这是一次性获取全量数据到python程序很慢&#xff0c;全流程10秒以上&#xff0c;希望进行优化加速 2.排查 首先&#xff0c…

TCP如何保证数据传输的稳定性和可靠性

TCP&#xff08;传输控制协议&#xff09;通过多种机制确保数据传输的稳定性和可靠性。以下是TCP确保数据传输稳定性的几个关键机制&#xff0c;以及确认号和流量控制功能的关系&#xff1a; 三次握手&#xff08;Three-way Handshake&#xff09;&#xff1a; 建立连接时&…

你知道什么是微调吗?大模型为什么要微调?以及大模型微调的原理是什么?

“ 预训练(pretrain)微调(finetuning)&#xff0c;是目前主流的范式**”** 在学习大模型的过程中&#xff0c;怎么设计神经网络和怎么训练模型是一个重要又基础的操作。 但与之对应的微调也是一个非常重要的手段&#xff0c;这里就着重讲一下为什么要微调&#xff0c;其优点是…

【尚庭公寓SpringBoot + Vue 项目实战】租约管理(十四)

【尚庭公寓SpringBoot Vue 项目实战】租约管理&#xff08;十四&#xff09; 文章目录 【尚庭公寓SpringBoot Vue 项目实战】租约管理&#xff08;十四&#xff09;1、业务介绍2、逻辑介绍3、接口开发3.1、保存或更新租约信息3.2、根据条件分页查询租约列表3.3、根据ID查询租…

springboot 整合redis问题,缓存击穿,穿透,雪崩,分布式锁

boot整合redis 压力测试出现失败 解决方案 排除lettuce 使用jedis <!-- 引入redis --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><exclusions><exclus…

【0-1系列】从0-1快速了解搜索引擎是什么以及怎么用(上)

友情链接 社区开发版安装部署与使用教程社区版家族V2024.5版本更新说明 START>>1.快速了解搜索引擎 什么是搜索引擎数据库 搜索引擎数据库是一类专门用于数据内容搜索的NoSQL数据库&#xff0c;是非结构化大数据处理分析领域中重要的基础支撑软件。 伴随互联网、移动…

网络安全基础漏洞复习

一.sql注入 Mysql自带了Information_schema这个数据库&#xff0c; 5.0以下是没有的 布尔盲注 时间盲注sleep 报错注入 堆叠注入&#xff08;就是一下使用了两个SQL语句只不过使用 ; 来把他们分隔开&#xff09; 报错常用函数&#xff1a;extractvalue updatexml exp 基于g…

不同类型的Shell脚本

大家好&#xff0c;我是G探险者。 在linux里面执行某个shell脚本的时候&#xff0c;发现执行不了&#xff0c;说什么不兼容&#xff0c;研究了一下发现shell脚本也有这么多的类型&#xff0c;下面就简单聊聊。 简介 Shell脚本是一种用于自动化任务的强大工具&#xff0c;广泛…

开发一个python工具,pdf转图片,并且截成单个图片,然后修整没用的白边及循环遍历文件夹全量压缩图片

今天推荐一键款本人开发的pdf转单张图片并截取没有用的白边工具 一、开发背景&#xff1a; 业务需要将一个pdf文件展示在前端显示&#xff0c;但是基于各种原因&#xff0c;放弃了h5使用插件展示 原因有多个&#xff0c;文件资源太大加载太慢、pdf展示兼容性问题、pdf展示效果…

3D模型在电商行业的应用有哪些?

3D模型在电商行业的应用广泛且多样化&#xff0c;以下是几个主要的应用领域&#xff1a; 1、商品展示&#xff1a; 3D立体展示技术能够利用商品的3D模型进行全方位的展示&#xff0c;支持720旋转和任意缩放&#xff0c;使得消费者能够更直观地了解产品的外观、结构和特点。这…

Spring Boot常用注解

EnableAutoConfiguration: 作用自动扫描并添加jar包依赖 SpringBootApplication: 原理是一个组合注解&#xff0c;相当于EnableAutoConfiguration和ComponentScan RestController: 用于标注控制层组件(如struts中的action)&#xff0c;包含Controller和ResponseBody Reposit…

排序(2)【选择排序】【快速排序】

一.选择排序 选择排序就是选择一个数组的最大的数字或者最小的数字&#xff0c;放在一整个数组的最后或者开头的位置。 1.选择排序的实现 我们可以对选择排序进行一些加强&#xff0c;普通的选择排序是选择最小的数&#xff0c;然后进行交换。这个加强之后就是我们既要选择出…

支付宝H5支付

业务场景&#xff1a;需要再手机端H5使用支付宝的支付&#xff01; 第一步&#xff1a; 开通支付宝商户,支付宝开放平台地址放在这里了。 第二步&#xff1a; 创建应用开通支付产品功能&#xff1a; 创建应用就不单一切图了&#xff01;登录账户-管理中心就能看到-选择网页…

微信小程序知识点概况

1. 基本概念 微信小程序&#xff1a;是一种新的开放能力&#xff0c;开发者可以快速地开发一个小程序。小程序能够在微信内被便捷地获取和传播&#xff0c;同时具有出色的使用体验。 特点&#xff1a; 无需安装&#xff1a;用户通过扫描二维码或搜索即可使用。触手可及&…

主流后端开发语言对比

软件开发领域&#xff0c;语言本身在各自领域都有适用场景&#xff0c;有许多流行的编程语言可供选择&#xff0c;每种语言都有其独特的特点和适用场景。 Java、C、C、Go 、Python、C#、Ruby、PHP 等主流编程语言&#xff0c;从底层实现、效率、原理、国内外市场占有率、社区活…

python项目(课设)——飞机大战小游戏项目源码(pygame)

主程序 import pygame from plane_sprites import * class PlaneGame: """ 游戏类 """ def __init__(self): print("游戏初始化") # 初始化字体模块 pygame.font.init() # 创建游戏…

Centos+Jenkins+Maven+Git 将生成的JAR部署到远程服务器上

1、登录 没有安装的参考下面的安装步骤先安装: Jenkins安装手册 输入账号、密码登录系统。 2、新建任务 2.1 创建页面 1,“输入一个任务名称”; 2,任务类型点击“构建一个maven项目”; 3,点击“确定”,此时,构建任务创建完成。 2.2 General 1、描述:输入要部署…

通用大模型VS垂直大模型

通用大模型VS垂直大模型&#xff0c;你更青睐哪一方&#xff1f; 在当前AI大模型的竞争环境中&#xff0c;通用大模型和垂直大模型各有其独特的优势和挑战&#xff0c;选择哪一方更有前景需要考虑多方面因素。 通用大模型的优势与挑战 通用大模型如GPT-3、BERT等在自然语言处理…

MFC工控项目实例之五CFile类读写系统参数

承接专栏《MFC工控项目实例之四在调试目录下创建指定文件夹》 实时保存输入的iPlotX坐标轴最小值、最大值到CFG.PAR文件&#xff0c;打开界面从CFG.PAR文件中实时读取保存的最小值、最大值在编辑框中显示。 1、SEAL_PRESSURE.h中添加代码 class CSEAL_PRESSUREApp : public CW…