当前位置: 首页 > news >正文

【leetcode100】最长回文子串

1、题目描述

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

示例 1:

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

示例 2:

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

2、初始思路

2.1 思路

暴力求解法,依次遍历每一个子串,并进行判断,时间复杂度很高,为O(n³)。

2.2 代码

class Solution:def longestPalindrome(self, s: str) -> str:if len(s) == 1:return sn = len(s)max_res = ""for i in range(n):for j in range(i,n):if s[i:j+1] == s[i:j+1][::-1]:res = s[i:j+1]if len(res) > len(max_res):max_res = resreturn max_res

2.3 缺点

3 优化算法

3.1 思路--中心扩展法

从中间字符进行左右遍历,这样,每个字符被遍历的次数为n,时间复杂度降低为O(n²)。

3.2 代码

class Solution:def longestPalindrome(self, s: str) -> str:n = len(s)start, end = 0, 0def center(left, right):while left >= 0 and right < n and s[left] == s[right]:left -= 1right += 1return left+1, right-1for i in range(n):l1, r1 = center(i, i)l2, r2 = center(i, i+1)if r1 - l1 > end - start:start, end = l1, r1if r2 - l2 > end - start:start, end = l2, r2return s[start:end+1]
http://www.dtcms.com/a/267624.html

相关文章:

  • Altium Designer使用教程 第二章(原理图绘制)
  • 嵌入式 数据结构学习(四) 双向链表详解与工程管理
  • 3dmax标准材质转物理材质插件,支持VR材质和CR材质转换成功物理材质,支持多维子材质
  • vscode工具使用技巧
  • Spring AI介绍:Java开发者迈向智能应用的新利器
  • Delta、Jackknife、Bootstrap
  • n8n完全指南:从入门到精通的工作流自动化实践
  • 闲庭信步使用SV搭建图像测试平台:第三十一课——基于神经网络的手写数字识别
  • RS触发器Multisim电路仿真——硬件工程师笔记
  • 【unitrix】 4.18 类型级二进制数加法实现解析(add.rs)
  • .NET9 实现斐波那契数列(FibonacciSequence)性能测试
  • Windows内存泄漏自动化
  • 部署greenplum7.2双节点集群
  • Softhub软件下载站实战开发(十三):软件管理前端分片上传实现
  • 【部署与总结】从本地运行到公网服务器的全过程
  • Qt智能指针
  • 408第三季part2 - 计算机网络 - 计算机网络分层结构
  • Python数据分析基础04:预测性数据分析
  • 非负矩阵分解(NMF)的python应用 ,基因分析,以胰腺癌上皮亚簇为实例,NMF在癌症研究中的优势
  • 支持多方式拼接图片的软件
  • Zama 机密区块链协议Litepaper
  • RAL-2025 | 清华大学数字孪生驱动的机器人视觉导航!VR-Robo:面向视觉机器人导航与运动的现实-模拟-现实框架
  • 【ES6】Latex总结笔记生成器(网页版)
  • RocketMQ一键启动_window
  • 黑马点评系列问题之基础篇06初识redis测试连接redis失败
  • 硬件嵌入式工程师学习路线终极总结(二):Makefile用法及变量——你的项目“自动化指挥官”!
  • 深度学习5(深层神经网络 + 参数和超参数)
  • Ubuntu 20.04 编译安装FFmpeg及错误分析与解决方案
  • 数据结构:数组:插入操作(Insert)与删除操作(Delete)
  • PageRank:互联网的马尔可夫链平衡态