Leetcode_5:最长回文子串

news/2024/10/18 20:12:49/

题目描述:

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

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

示例 1:

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

示例 2:

输入:s = "cbbd"
输出:"bb"

思路:

①因为回文没有什么分布的规律,采用的是枚举的解决方法,即从左往右依次遍历

②回文有两种,第一种是aba形式,第二种是abba形式

第一种使用指针移动的方式,左右指针都指向b,然后左指针向左,右指针向右比较

第二种左指针指向的是第一个b,右指针指向的是第二个b,然后向两边散开

代码:

"""
@Project :study_python 
@File    :longestPalindrome.py
@IDE     :PyCharm 
@Author  :chenwenlong
@Date    :2023/8/21 16:41 
"""class Solution(object):def longestPalindrome(self, s):result = ''max_len = 0# 第一种情况,aba形式for i in range(len(s)):palindrome = self.judgeLongestPalindrome(s, i, i)temp_len = len(palindrome)if temp_len > max_len:max_len = temp_lenresult = palindrome# 第二种情况,abba形式for j in range(len(s)):palindrome = self.judgeLongestPalindrome(s, j, j + 1)temp_len = len(palindrome)if temp_len > max_len:max_len = temp_lenresult = palindromereturn resultdef judgeLongestPalindrome(self, s, i, j):while i >= 0 and j < len(s) and s[i] == s[j]:  # 注意这里,一定要先判断边界条件,后判断值,否则会出现数组越界i -= 1j += 1return s[i + 1:j]if __name__ == "__main__":a = Solution()res = a.longestPalindrome('alibba')print(res)


http://www.ppmy.cn/news/1215643.html

相关文章

Vue的计算属性

Vue的计算属性&#xff0c;是一种架构设计中的权衡结果。现在的前端架构&#xff0c;上规模的都是类似于MVVM风格的。在这种架构下&#xff0c;会存在一种情况&#xff0c;从后台取回的数据不能直接展示&#xff0c;需要满足一定条件时做一些临时性的转换&#xff0c;将原本的数…

构建Docker基础镜像(ubuntu20.04+python3.9.10+pytorch-gpu-cuda11.8)

文章目录 一、前置条件1.创建 ubuntu 镜像源文件【sources.list】2.下载 python 安装包【Python-3.9.10.tgz】 二、构建方法1.构建目录2.创建DockerFile3.打包镜像 一、前置条件 配置一下 ubuntu 的镜像源下载 python 安装包 1.创建 ubuntu 镜像源文件【sources.list】 内容…

JS 注释

JavaScript 不会执行注释&#xff0c;我们可以添加注释来对 JavaScript 进行解释&#xff0c;或者提高代码的可读性。 1.单行注释 单行注释以//开头。 以下代码中&#xff0c;单行注释用来对代码进行解释&#xff1a; <script>//定义点击次数的变量var clickCount 0;…

nodejs+vue+python+PHP+微信小程序-安卓- 电影在线订票系统的设计与实现-计算机毕业设计推荐

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

二十、泛型(6)

本章概要 问题 任何基本类型都不能作为类型参数实现参数化接口转型和警告重载基类劫持接口 自限定的类型 古怪的循环泛型自限定参数协变 问题 本节将阐述在使用 Java 泛型时会出现的各类问题。 任何基本类型都不能作为类型参数 正如本章早先提到的&#xff0c;Java 泛型的…

Python中的数据增强技术

使用imgaug快速观察Python中的数据增强技术 在本文中&#xff0c;我们将使用imgaug库来探索Python中不同的数据增强技术 什么是图像增强 图像增强是一种强大的技术&#xff0c;用于在现有图像中人为地创建变化以扩展图像数据集。这是通过应用不同的变换技术来实现的&#xf…

嵌入式杂记 -- MCU的大小端模式

MCU的大小端模式 大端模式小端模式大小端模式测试联合体概念MCU大小端模式测试大端模式测试小端模式测试 大小端模式转换 在进行MCU开发的时候&#xff0c;我们需要注意MCU的数据存储模式&#xff0c;在嵌入式中有两种不同的存储模式&#xff0c;分别是 大端模式和小端模式。 …

对比国内主流开源 SQL 审核平台 Yearning vs Archery

Yearning, Archery 和 Bytebase 是目前国内最主流的三个开源 SQL 审核平台。其中 Yearning 和 Archery 是社区性质的项目&#xff0c;而 Bytebase 则是商业化产品。通常调研 Bytebase 的用户也会同时比较 Yearning 和 Archery。 下面我们就来展开对比一下 Yearning 和 Archery…