Leetcode--最长回文子串(解题思路+详细代码注释)Python实现

本文介绍了如何使用Python解决LeetCode上的最长回文子串问题,详细阐述了题意、解题思路及代码实现,通过中心扩展法考虑奇数和偶数长度的回文串情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.1题目

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

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

示例 1:

输入:s = "babad"
输出:"bab"
解释:"aba" 同样是符合题意的答案。

1.2已知题意:s仅为数字和英文字母组成 s最大长度为1000 

                       子串:原字符串的一个连续子集。

                       子序列:原始字符串的一个子集。

                        回文串:字符串从左往右读,从右往左读。

1.3解题思路:

我们如果用脑袋思考,自然就是中间向两边扩展,寻找最长的回文子串。

回忆我们人为寻找的时候,是存在奇数和偶数的两种情况,也就是说中心点有一个还是两个。

举个例子:baab和bab都是回文串,一个中心是aa,一个中心是a。因此需要将所有的点都设置 

                         成中心点寻找最终答案,重新写了一个函数,调用就可以了。

1.4代码如下:

class Solution:
    def zuichanghuiwenzichuan(self, s: str):
        zifuchuanchangdu = len(s) #首先得到字符串的长度,方便一个一个点遍历
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值