力扣题库刷题笔记5--最长回文子串

news2024/11/25 16:50:15

1、题目如下:

2、个人Python代码实现:

        首先想到的是通过类似冒泡排序的方式进行切片,然后判断切片的子字符串是否为回文字符串,然后记录出最长的回文字符串,代码如下:

        可以看到,通过切片的方式,在字符串长度只有1的时候,会报错。当然,这里可以,我的第一反应也是通过if...else判断字符串长度就行,但是突然想到可以使用另外一种方式进行控制:

        不管是第一种切片还是第二种,其实循环的本质我个人认为跟冒泡是一样的,最后提交代码如下:

class Solution:

    def longestPalindrome(self, s: str) -> str:

        out_put = ''                                #out_put为输出

        while s:                                    #当字符串s不为空时

            temp = ''                               #temp为子字符串

            for i in s:                             #遍历字符串s,将子字符依次加入temp中  

                temp += i

                #当temp长度大于out_put且temp为回文字符串时,将temp赋值给out_put

                if len(temp) > len(out_put) and temp == temp[::-1]:

                    out_put = temp

            #删除字符串s第一个字符

            s = s[1:]

        return out_put

        #本代码两段循环个人理解为冒泡排序的变种,暂做以下解释:

        #外循环while用于判断字符串s中是否含有字符,当每一次内循环结束以后,删除字符串s的第1个字符,开始下一次内循环

        #内循环for用于记录从当前下标(此处下标可以理解为初始值为0,每一次外循环后下标+1)开始后的可能存在的回文子串

        #以s = "abcd"为例

        #第一次while循环,是从a开始,依次判断a、ab、abc、abcd是否为回文字符串,在内循环中temp的值也依次为a、ab、abc、abcd,下同;

        #第二次while循环,是从b开始,依次判断b、bc、bcd是否为回文字符串,以此类推,执行四次循环

 

 

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

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

相关文章

合宙Air724UG Cat.1模块硬件设计指南--电源供电

电源供电 简介 在模块应用设计中,电源设计是很重要的一部分,供电部分的电路设计不当会造成模块出现工作异常、指标恶化等现象,而良好的电源设计方案能够给模块提供稳定的工作状态。 特性 模块主供电VBAT:3.3V~4.3V,推…

设计模式—模板方法模式

模板方法模式: 定义一个操作的流程框架,而将流程中一些步骤延迟到子类中实现。使得子类在不改变流程结构的情况下,重新定义流程中的特定步骤。 主要角色: 抽象类: 负责给出操作流程的轮廓或框架,由模板方法和若干基…

用户模块的增删改查接口设计

MongoDB 数据库常用操作 MongoDB数据库中常用的操作包括: 插入数据:使用insertOne()或insertMany()方法向集合中插入数据。查询数据:使用find()方法查询满足条件的数据。更新数据:使用updateOne()或updateMany()方法更新满足条件…

【力扣刷题 | 第九天】150 逆波兰 239滑动窗口最大值

目录 前言: 150. 逆波兰表达式求值 - 力扣(LeetCode) 239. 滑动窗口最大值 - 力扣(LeetCode) 总结: 前言: 本片仍然是利用栈与队列的思想来解决实际问题,希望各位小伙伴可以和我…

chatgpt赋能python:Python断言之等于两个值其中一个

Python断言之等于两个值其中一个 在Python编程中,我们经常需要对程序进行断言,以判断程序是否正确地运行。其中一种常见的断言方式是判断某个方法的结果是否等于两个值中的其中一个。本文将介绍如何在Python中实现这种断言,并探讨其在实际应…

⑨电子产品拆解分析-触摸化妆镜

⑨电子产品拆解分析-触摸化妆镜 一、功能介绍二、电路分析以及器件作用1、电源部分2、触摸部分3、灯光控制部分三、数据手册以及其它资料1、注意点2、数据手册汇总一、功能介绍 ①短按白光、暖光、冷光三档色温切换;②长按支持无极调光;③三档调亮度关机记忆当前亮度功能;二…

chatgpt赋能python:Python模块更新技巧详解

Python模块更新技巧详解 为什么需要更新Python模块? Python语言自问世以来一直在得到广泛的应用,其中最大的原因在于它的灵活性和可扩展性。Python拥有丰富的模块库,覆盖了各种不同的应用场景。然而,由于软件环境不断发展&#…

服务器配置远程vscode

1 使用sftp同步远程代码 打开vscode,在扩展种搜索sftp,点击安装。   按住快捷键shiftctrlp,可以打开界面顶部的命令行,输入sftp,点击如下图的config选项:   会自动在.vscode目录下创建一个名为sftp.j…

photoscan(metashape)跑GPS辅助的无人机影像SfM(空三)教程

刚打开的photoscan界面如下图所示:   然后,点击工作区左上角的添加堆块选项:   可以看到新增了一个名为“Chunk 1”的堆块,然后,右击“Chunk 1”,依次选择add、添加照片:   即可弹出照…

踩坑系列 Spring websocket并发发送消息异常

文章目录 示例代码WebSocketConfig配置代码握手拦截器代码业务处理器代码 问题复现原因分析解决方案方案一 加锁同步发送方案二 使用ConcurrentWebSocketSessionDecorator方案三 自研事件驱动队列(借鉴 Tomcat) 总结 今天刚刚经历了一个坑,非…

云原生之使用Docker部署wordpress网站

云原生之使用Docker部署wordpress网站 一、wordpress介绍二、检查本地docker环境1.检查docker状态2.检查docker版本 三、下载wordpress镜像四、创建数据库1.创建数据目录2.创建mysql数据库容器3.查看mysql容器状态4.远程客户端测试连接数据库 五、部署wordpress1.创建wordpress…

java开发——程序性能的优化方法

java开发——程序性能的优化方法 1、算法逻辑优化2、redis缓存优化3、异步编排4、MQ削峰填谷5、预加载6、sql调优7、jvm调优8、集群搭建 后端开发必须学习的优化思想! 1、算法逻辑优化 (1) 什么算法优化? 算法优化的思想就是,对于同一个问题…

ll 内容详解

linux的数据存储是以block(块)为单位的 : 1个block 4 KB 4096 字节 1KB 1024 字节[rootCTF-RHCSA-2 ~]# ll -sh total 76K (列表中 所有文本文件 总共占用磁盘空间的KB大小 )(root用户家目录中…

cortex A7核按键中断实验

cortex A7核按键中断实验 一、分析电路图 实验目的:完成板子三个按键操作 1.1 电路图IO口 KEY1------>PF9 KEY2------>PF7 KEY3------>PF8 1.2 工作原理 KEY1 ------> PF9 ------> 按键触发方式:下降沿触发 KEY2 ------> PF7 …

ElasticSearch安装与介绍

目录 ElasticSearch安装与介绍Elastic Stack简介ElasticsearchLogstashKibanaBeats ElasticSearch快速入门简介下载单机版安装启动ElasticSearch 错误分析错误情况1错误情况2错误情况3 ElasticSearch-Head可视化工具通过Docker方式安装通过Chrome插件安装 ElasticSearch中的基本…

docker部署prometheus+grafana+alertmanager+dingtalk实现钉钉告警

目录 docker安装准备工作镜像拉取容器启动启动node-exporter启动prometheus启动grafana启动webhook-prometheus-dingtalk启动alertmanager所有容器启动成功如下 将prometheus和alertmanager进行关联在prometheus目录下新建一个rules.yml文件的告警规则修改prometheus.yml文件&a…

NLP学习笔记十二-skip-gram模型求解

NLP学习笔记十一-skip-gram模型求解 上一篇文章,我们见到了skip-gram模型的原理,这里我们在陈述一下skip-gram模型其实是基于分布相似性原理来设计的,在skip-gram模型中,他认为一个词的内涵可以由他的上下文文本信息来概括&#…

AcWing 837. 连通块中点的数量

题目如下: 给定一个包含 n个点(编号为 1∼ n)的无向图,初始时图中没有边。 现在要进行 m 个操作,操作共有三种: C a b,在点 a和点 b之间连一条边,a 和 b 可能相等;Q1 …

【iMessage苹果日历推真机群控】使用虚拟化平台创建一个 macOS 虚拟机

PC 虚拟机上部署群控推送并模拟苹果 iMessage 推送消息是比较复杂的任务。由于苹果的 iMessage 服务是基于苹果设备和操作系统的,模拟 iMessage 推送需要考虑苹果的生态系统和安全机制。 以下是一种可能的方法,但请注意这是一个高级设置,需要…

chatgpt赋能python:Python编程中的放大代码技巧

Python 编程中的放大代码技巧 Python 是一门广泛应用于各个领域的编程语言。由于它易学易用、可移植性好、开发效率高等特点,使其在人工智能、大数据分析、网站开发等领域被广泛应用。在实际编程中,随着代码量的增加,需要更好地组织和管理代…