C++ 之LeetCode刷题记录(三十一)

news2025/1/13 13:28:31

😄😊😆😃😄😊😆😃

开始cpp刷题之旅。

目标:执行用时击败90%以上使用 C++ 的用户。

在这里插入图片描述

5. 最长回文子串

给你一个字符串 s,找到 s 中最长的回文子串。

如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。

示例 1:

输入:s = “babad”
输出:“bab”
解释:“aba” 同样是符合题意的答案。
示例 2:

输入:s = “cbbd”
输出:“bb”

解题:

这题目是一个回文串的题目。与题九回文数相比,之所以能成为一个中等难题,是因为回文串的中心位置不定。

题九,你只需要判断一个字符串是否是回文串,那么只有两种情况可以考虑:

情况一:s=“abba”;
情况二:s=“aba”;

那我们直接就可以对字符串判断是否为这两种情况即可。

而当前题,中心位置不定,那我们该如何去找这个中心位置,并求出关于此中心位置对称的最大回文串呢?

首先考虑的一种情况,字符串只有单个时,那么直接返回即可。

当字符串字符数大于一时。我们对其进行遍历循环,判断当前字符是否为回文串的对称中心不就可以了吗。

考虑先写一个判断是否为回文串的函数,其输入变量为
一个字符串,一个左指针,一个右指针,记录的起始值,最大回文长度值。

起始值和最大回文长度值是为了从原字符串中截取题目的解。

最后只要在原字符串中截取一个字符串,该字符串从左指针开始,长度为最大回文串长度。

截取的字符串即为该字符串的最大回文子串了。

注意,在循环遍历字符串时,我们仍要分为两种情况去考虑:

情况一:“abba”;
情况二:“aba”;

class Solution {
public:
    string longestPalindrome(string s) {
        if(s.size()<2) return s;
        int start=0;
        int maxlen=1;
        for(int i=0;i<s.size();i++)
        {
            Palindrome(s,i,i,start,maxlen);
            Palindrome(s,i,i+1,start,maxlen);
        }
        return s.substr(start,maxlen);
    }
    void Palindrome(const string &s,int left,int right,int &start,int &maxlen)
    {
        while(left>=0&&right<s.size()&&s[left]==s[right])
        {
            if(right-left+1>maxlen)
            {
                maxlen=right-left+1;
                start=left;
            }
            right++;
            left--;
        }
    }
};

看一下提交记录:

在这里插入图片描述

刚好击败90%的用户,这种想法虽然不是效率最高的解法,但是我感觉挺好理解的。

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

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

相关文章

Nodejs 第三十八章(mysql2)

在之前的篇章中&#xff0c;已经补充完成mysql的基本知识&#xff0c;那么现在开始&#xff0c;我们需要把mysql和express,nodejs连接起来。 安装依赖 npm install mysql2 express js-yamlmysql2 用来连接mysql和编写sq语句express 用来提供接口 增删改差js-yaml 用来编写配置…

String类的常用功能

目录 1.概述 2.String的不可变性 2.1 说明 2.2 代码举例 2.3 图示 3.String实例化的不同方式 3.1 方式说明 3.2 代码举例 3.3 面试题 3.4 图示 4. 字符串拼接方式赋值的对比 4.1 说明 4.2 代码举例 5.常用方法&#xff1a; 6. String与其它结构的转换 6.1 与基…

Java学习心得感悟

在我踏入Java学习的道路之前&#xff0c;我对编程只是一知半解&#xff0c;对于代码的世界充满了好奇和向往。然而&#xff0c;当我真正开始学习Java时&#xff0c;我才意识到&#xff0c;学习Java不仅仅是学习一门编程语言&#xff0c;更是一种思维方式和解决问题的能力的培养…

【动态规划专栏】专题二:路径问题--------6.地下城游戏

本专栏内容为&#xff1a;算法学习专栏&#xff0c;分为优选算法专栏&#xff0c;贪心算法专栏&#xff0c;动态规划专栏以及递归&#xff0c;搜索与回溯算法专栏四部分。 通过本专栏的深入学习&#xff0c;你可以了解并掌握算法。 &#x1f493;博主csdn个人主页&#xff1a;小…

【计算机考研】408系统学习法

计算机专业课基本上都是数据结构&#xff0c;计算机组成原理&#xff0c;计算机网络和操作系统中的内容 如果你考的学校是自命题&#xff0c;那么考察的专业课一般比较少&#xff0c;只有1-3门&#xff0c;比较顶尖的学校自命题考的比408还要难。如果考的是408&#xff0c;那么…

【Vue3】使用ref与reactive创建响应式对象

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

7.98万的秦PLUS够低,8.68万的卡罗拉已高攀不起!

文 | AUTO芯球 作者 | 雷歌 燃起来啦&#xff01; 新能源汽车的价格战&#xff0c;简直打到准车主的心坎里来了。 就在昨天&#xff0c;比亚迪先打响第一枪&#xff0c;秦PLUS瞄准同级别油车&#xff0c;冲锋号是“电比油低”。 2024款的秦PLUS DM-i荣耀版和驱逐舰05荣耀版…

ESP32-Cam学习(2)——PC实时显示摄像头画面

具体代码和操作过程见&#xff1a; 3. 实时显示摄像头画面 (itprojects.cn)https://doc.itprojects.cn/0006.zhishi.esp32/02.doc/index.html#/e03.showvideo我主要记录一下我在复现的过程中&#xff0c;遇到的问题以及解决方法。 1.安装第三方库 首先电脑端的代码需要用pych…

Java基础(二十五):Lambda表达式、方法引用、构造器引用

Java基础系列文章 Java基础(一)&#xff1a;语言概述 Java基础(二)&#xff1a;原码、反码、补码及进制之间的运算 Java基础(三)&#xff1a;数据类型与进制 Java基础(四)&#xff1a;逻辑运算符和位运算符 Java基础(五)&#xff1a;流程控制语句 Java基础(六)&#xff1…

华为---RSTP(二)---RSTP基本配置示例

目录 1. 示例要求 2. 网络拓扑图 3. 配置命令 4. 测试终端连通性 5. RSTP基本配置 5.1 启用STP 5.2 修改生成树协议模式为RSTP 5.3 配置根交换机和次根交换机 5.4 设置边缘端口 6. 指定端口切换为备份端口 7. 测试验证网络 1. 示例要求 为防止网络出现环路&#xf…

芋道-------如何实现工作流退回后重新提交到之前退回的节点

一、概述 上一节&#xff0c;我们讲过了工作流如何退回到申请人&#xff0c;接下来我们来讲一讲&#xff0c;如何重新提交。这里重新提交可以是再走一遍正常流程&#xff0c;同时也可以是直接跳过中间的步骤&#xff0c;直接继续给上一步退回的人审批。文章中会提及这两种情况。…

2、windows环境下vscode开发c/c++环境配置(一)

前言&#xff1a;VSCode是微软出的一款轻量级编辑器&#xff0c;它本身只是一款文本编辑器而已&#xff0c;并不是一个集成开发环境(IDE)&#xff0c;几乎所有功能都是以插件扩展的形式所存在的。因此&#xff0c;我们想用它编程&#xff0c;不只是把vscode下载下来就行&#x…

MQ最终一致性理论与实践

MQ最终一致性理论与实践 原理 分布式事务无论是2PC&3PC还是TCC&#xff0c;基本都遵守XA协议的思想&#xff0c;但全局事务方案并发性较差&#xff1b; 最终一致性方案指的是将最有可能出错的业务以本地事务的方式完成后&#xff0c;采用不断重试的方式&#xff08;不限…

Sora内测申请详细教程

Sora内测申请详细教程 Sora 的创作能力&#xff0c;已经让很多人震惊了&#xff0c;自己制作电影的时代来了&#xff0c;以前做个短视频觉得已经够满足了&#xff0c;现在人人都能成为导演。 这几天大家都在等什么时候能用上&#xff0c;我给他分享一个可能提前用上Sora的方法…

Panalog大数据日志审计系统libres_syn_delete.php存在命令执行漏洞

文章目录 前言声明一、Panalog大数据日志审计系统简介二、漏洞描述三、影响版本四、漏洞复现五、整改意见 前言 Panalog大数据日志审计系统定位于将大数据产品应用于高校、 公安、 政企、 医疗、 金融、 能源等行业之中&#xff0c;针对网络流量的信息进行日志留存&#xff0c…

MyBatis学习总结

MyBatis分页如何实现 分页分为 逻辑分页&#xff1a;查询出所有的数据缓存到内存里面&#xff0c;在从内存中筛选出需要的数据进行分页 物理分页&#xff1a;直接用数据库语法进行分页limit mybatis提供四种方法分页&#xff1a; 直接在sql语句中分页&#xff0c;传递分页参数…

多进程(1)

1> 使用多个进程实现文件拷贝 #include<myhead.h> int main(int argc, const char *argv[]) {pid_t pid;pidfork();int fdr;char buf;if((fdropen(argv[1],O_RDONLY))-1){perror("open error");return -1;}int lenlseek(fdr,0,SEEK_END)-lseek(fdr,0,SEEK_…

openGauss学习笔记-224 openGauss性能调优-系统调优-数据库系统参数调优-数据库并发队列参数调优

文章目录 openGauss学习笔记-224 openGauss性能调优-系统调优-数据库系统参数调优-数据库并发队列参数调优224.1 全局并发队列224.2 局部并发队列 openGauss学习笔记-224 openGauss性能调优-系统调优-数据库系统参数调优-数据库并发队列参数调优 数据库提供两种手段进行并发队…

掌握社区店选址技巧,提升商业成功率

对于想开实体店或创业的人来说&#xff0c;选址是决定商业成功的关键因素之一。本人在社区店开鲜奶吧5年时间&#xff0c;我将分享一些实用的社区店选址技巧&#xff0c;帮助你提升商业成功率。 1、人口密度和流量&#xff1a; 选择人口密集、流量大的社区&#xff0c;这样可以…

redis scan命令导致cpu飙升

一.背景 今天下午Redis的cpu占用突然异常升高&#xff0c;一度占用达到了90%&#xff0c;触发了钉钉告警&#xff0c;之后又回到正常水平&#xff0c;跟DBA沟通&#xff0c;他说主要是下面这个语句的问题 SCAN 0 MATCH fastUser:6136* COUNT 10000这个语句的执行时长很短&…