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

news/2024/12/29 22:56:59/

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.ppmy.cn/news/393651.html

相关文章

Android 点击悬浮窗后台启动Activity问题及方案

背景:开启悬浮窗,当app进入后台后,点击悬浮窗进入固定页面 问题:当app在后台运行时,点击悬浮窗,以下代码不能拉起app,经排查,部门手机需要开启后台弹出界面权限 val intent Intent(context, PhoneMainActivity::class.java) intent.putExtra(MESSAGE_TYPE, pushMessageVO.ty…

【Pandas】筛选某列过滤

通过dataframe的第二个条件,进行筛选 #make字段异常值清洗 new data[[make, model, instance_id]] new[make_model] new[make]:::new[model] new.head(3) # new.make_model.value_counts() # 统计make_model列属性值出现的次数new.make_model.value_counts()[new…

Gin框架的使用

Gin的基本使用官方网址 golang databasesql官方网址 sqlx网址 go-redis网址 官方推荐redigo网址 一、多种请求类型 go遵循RESTful架构风格,所以在请求上有多种请求类型,下面是各种请求方式代表的含义 conn : gin.Default() //请求所有文章 conn.GET(&…

Gin(十一):集成 gorm

点击蓝色字关注我们! 一个努力中的公众号 长的好看的人都关注了 随着项目的不断扩大,总有一天,项目中的表和表中的字段多的数不胜数,如果此时仍旧使用 SQL 语言来执行增删改查,务必会带来很多繁琐的事情,比…

Gin框架原理

文章目录 一、简介二、安装与使用入门三、Gin与net/http四、Gin路由原理1、路由引入2、路由注册3、路由查找 相关链接: https://github.com/gin-gonic/gin https://www.topgoer.cn/docs/ginkuangjia/ 一、简介 Gin 是 Go语言写的一个 web 框架,它具有运…

golang-gin框架入门

基础 快速入门 gin完整支持路由框架支持全局异常(错误)处理内置渲染高可扩展 组件 在gin框架中四个基本组件是: Engine:是web server的根数据结构,也是基础容器;它包含复用器、中间件和配置设置。类似S…

gin框架的使用(四)——用户登录

在gin-demo/controller/user.go 中写登录的方法 package controllerimport "C" import ("gin-demo/common""gin-demo/model""github.com/gin-gonic/gin""github.com/jinzhu/gorm""golang.org/x/crypto/bcrypt"&q…

golang gin框架入门教程,gin框架脚手架,开箱即用

gin-layout github地址:https://github.com/wannanbigpig/gin-layout Gin Project Template 本项目使用 gin 框架为核心搭建的一个脚手架,可以基于本项目快速完成业务开发,开箱📦 即用 运行 拉取代码后在项目根目录执行如下命令…