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

面试高频算法:最长回文子串

题目:5. 最长回文子串

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

  • 回文:如果字符串向前和向后读都相同,则它满足回文性;
  • 子串:子字符串 是字符串中连续的非空字符序列。

示例 1:

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

示例 2:

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

提示:

  • 1 <= s.length <= 1000
  • s 仅由数字和英文字母组成

解题思路

算法思路是通过遍历字符串中的每个字符或字符对,以它们为中心向两侧扩展,找到最长回文字符串,并记录最大长度和起始位置。最后根据最长回文字符串的起始位置和长度,截取出最长回文子串并返回

实现代码

package leetcodefunc longestPalindrome(s string) string {length := len(s)getLen := func(i, j int) int {// 以s[i]s[j]为中心的最长回文字符串for i >= 0 && j < length {if s[i] == s[j] {i--j++} else {return j - i - 1}}return j - i - 1}max := 0maxStart := 0for i := 0; i < length; i++ {if Max(getLen(i, i+1), getLen(i, i)) > max {max = Max(getLen(i, i+1), getLen(i, i))maxStart = i - (max-1)/2}}maxString := ""for i := maxStart; i < maxStart+max; i++ {maxString += string(s[i])}return maxString
}func Max(i, j int) int {if i >= j {return i}return j
}

复杂度分析

  • 时间复杂度: $ O(n^2) $
  • 空间复杂度: $ O(1) $

单元测试

package leetcodeimport ("testing""github.com/stretchr/testify/assert"
)func Test_longestPalindrome(t *testing.T) {assert := assert.New(t)type args struct {s string}tests := []struct {args argswant string}{{args: args{s: "babad"},want: "bab",},{args: args{s: "cbbd"},want: "bb",},}for _, tt := range tests {actual := longestPalindrome(tt.args.s)assert.Equal(tt.want, actual)}
}
  • 知识星球:云原生AI实战营。10+ 高质量体系课( Go、云原生、AI Infra)、15+ 实战项目,P8 技术专家助你提高技术天花板,入大厂拿高薪;
  • 公众号:令飞编程,分享 Go、云原生、AI Infra 相关技术。回复「资料」免费下载 Go、云原生、AI 等学习资料;
  • 哔哩哔哩:令飞编程 ,分享技术、职场、面经等,并有免费直播课「云原生AI高新就业课」,大厂级项目实战到大厂面试通关;

相关文章:

  • OpenCV 中用于背景分割(背景建模)的一个类cv::bgsegm::BackgroundSubtractorGSOC
  • windows10 环境下通过huggingface_hub下载huggingface社区模型
  • 碰一碰发视频源码搭建的技术迭代与升级实践
  • 金融小知识
  • 【AI入门】CherryStudio入门3:结合FastMCP创建自己的MCP服务,实现哔哩视频查询
  • stable Diffusion模型结构
  • 使用 Python 与 Java 实现接入 AI 大模型的 MCP 协议:原理与实战
  • AbMole的Calcein-AM/PI细胞双染试剂盒,精准区分细胞活死状态
  • CI/CD与DevOps流程流程简述(提供思路)
  • 电商双11美妆数据分析实验总结
  • 图片处理软件2025年的最新版,免激活绿色软件!
  • 【LeetCode】高频 SQL 50题 题解
  • DeepSeek技术最新进展分析报告(2025年5月)
  • Sat2Density论文详解——卫星-地面图像生成
  • 6. HTML 锚点链接与页面导航
  • AI 大模型新浪潮:从 DeepSeek-Prover 到 Qwen3,再到 DeepSeek-R2,迈向自动推理的新时代20250507
  • 2025年链游行业DDoS与CC攻击防御全解析:高带宽时代的攻防博弈
  • 农产品供销系统设计与实现+springboot+vue源码部署
  • 基于大模型的输卵管妊娠全流程预测与治疗方案研究报告
  • 什么情况下会触发Full GC?
  • “一节课、两小时”,体育正在回归“C位”
  • 长江画派创始人之一、美术家鲁慕迅逝世,享年98岁
  • 现场丨“影像上海”启幕:串联摄影、电影与当代艺术
  • 苹果Safari浏览器上的搜索量首次下降
  • 罗氏制药全新生物制药生产基地投资项目在沪启动:预计投资20.4亿元,2031年投产
  • 牛市早报|央行宣布降准降息,公募基金改革最新方案落地