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

LeetCode热题100--5. 最长回文子串--中等

题目

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

示例 1:
输入:s = “babad”
输出:“bab”
解释:“aba” 同样是符合题意的答案。

示例 2:
输入:s = “cbbd”
输出:“bb”

题解

classSolution{publicStringlongestPalindrome(Strings){if(s==null||s.length()<2){returns;}intstrLen=s.length();intmaxStart=0;//最长回文串的起点intmaxEnd=0;//最长回文串的终点intmaxLen=1;//最长回文串的长度boolean[][]dp=newboolean[strLen][strLen];for(intr=1;r<strLen;r++){for(intl=0;l<r;l++){if(s.charAt(l)==s.charAt(r)&&(r-l<=2||dp[l+1][r-1])){dp[l][r]=true;if(r-l+1>maxLen){maxLen=r-l+1;maxStart=l;maxEnd=r;}}}}returns.substring(maxStart,maxEnd+1);}}

解析

出自:中心扩散法和动态规划

classSolution{publicStringlongestPalindrome(Strings){// 如果字符串为空,或长度小于2(即0或1),直接返回原字符串(单个字符本身就是回文)if(s==null||s.length()<2){returns;}// 获取字符串的总长度intstrLen=s.length();// 记录最长回文子串的起始索引(包含)intmaxStart=0;// 记录最长回文子串的结束索引(包含)intmaxEnd=0;// 记录当前找到的最长回文子串的长度,初始为1(至少一个字符)intmaxLen=1;// 创建二维布尔数组 dp,dp[l][r] 表示子串 s[l...r] 是否为回文boolean[][]dp=newboolean[strLen][strLen];// 外层循环:遍历右边界 r,从1开始(因为长度为1的子串已是回文,无需处理)for(intr=1;r<strLen;r++){// 内层循环:遍历左边界 l,从0到r-1for(intl=0;l<r;l++){// 判断 s[l] 和 s[r] 是否相等,并且:// - 如果子串长度 <= 3(即 r - l <= 2,如 "aa" 或 "aba"),只要两端相等就是回文;// - 或者更长的子串,需依赖内部子串 s[l+1...r-1] 是否为回文(即 dp[l+1][r-1] 为 true)if(s.charAt(l)==s.charAt(r)&&(r-l<=2||dp[l+1][r-1])){// 标记 s[l...r] 为回文dp[l][r]=true;// 如果当前回文子串长度大于已记录的最大长度,则更新最大长度和起止位置if(r-l+1>maxLen){maxLen=r-l+1;// 更新最大长度maxStart=l;// 更新起始索引maxEnd=r;// 更新结束索引}}// 注意:如果 s[l] != s[r],dp[l][r] 默认为 false(无需显式赋值)}}// 使用 substring 提取最长回文子串(注意:substring 的 end 是 exclusive,所以 +1)returns.substring(maxStart,maxEnd+1);}}
http://www.cnnetsun.cn/news/505348.html

相关文章:

  • 深度学习毕设项目:基于python-CNN卷积神经网络的水果识别
  • mysql之联合索引
  • 当 AI 落地到了“深水区”:到底是 Prompt 不行、RAG 不够,还是该考虑微调了?
  • MySQL中的GROUP_CONCAT()函数详解与实战应用
  • 【课程设计/毕业设计】基于深度学习卷积神经网络的水果识别基于python-CNN卷积神经网络的水果识别
  • 同样转行网络安全,有人月薪 8k 有人 3 万?方向选对才是关键
  • MySQL四种备份表的方式
  • 深度学习毕设选题推荐:基于卷积神经网络对土豆疾病识别基于python-CNN卷积神经网络对土豆疾病识别
  • 12V大功率ESD产品TVS20H12T5G 5000W 200A VC24V助力快充接口浪涌防护
  • 解密数字印刷“像素魔法”:基于Zynq的堆叠误差扩散算法专用处理器设计
  • rk3576板端推流
  • 数码宣传图素材推荐:解锁让产品画面更有故事感的视觉灵感
  • 交通仿真软件:Aimsun_(13).网络优化与设计
  • 交通仿真软件:Aimsun_(17).交通模型校准与验证
  • esp32s3-pwm介绍与stm32的不同原理
  • 金融级IP离线库深度测评:IP数据云 vs IPnews vs MaxMind
  • 【计算机毕业设计案例】基于CNN深度学习 python的遥感图片识别沙漠湖泊和森林
  • 计算机深度学习毕设实战-基于python的猫狗表情识别基于python深度学习的猫狗表情识别
  • 在RAG应用中,有哪些提示工程设计技巧?
  • vivado hls设计总结(十四)
  • (新卷,200分)- 模拟目录管理功能(Java JS Python C)
  • 2026 Amazon OA 保姆级攻略:流程拆解 + 高频题型 + 避坑指南,附真实面经
  • .NET开发必备:Redis、IoC、AutoMapper实战指南
  • 从一道前端面试题,谈 JS 对象存储特点和运算符执行顺序
  • 【课程设计/毕业设计】基于 python的CNN深度学习的遥感图片识别沙漠湖泊和森林
  • mysql--多表查询
  • 用 Wireshark 嗅探 ESP32 通信数据,教你看懂“WiFi 的语言”
  • 大型C项目的头文件管理:3招解决“重复包含”与“依赖混乱”
  • 15_嵌入式C与控制理论入门:控制算法的定点数优化与精度平衡
  • 【值得收藏】Agent-Graph:构建强大多智能体系统的完整教程