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.mzph.cn/news/1131596.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【值得收藏】大模型RAG技术突破:12种创新架构全解析,助你掌握前沿检索增强生成技术

本文介绍了12种最新的RAG高级架构与方法&#xff0c;包括Mindscape-Aware RAG、基于超图记忆的多步RAG、高保真分层RAG等创新技术。这些方法针对长文档理解、多步推理、减少幻觉、多模态处理等场景进行了优化&#xff0c;每个方法均附有论文链接&#xff0c;为开发者提供了丰富…

深度学习毕设项目推荐-通过python_CNN卷积神经网络对辣椒类别识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

ADVANCE Day45

浙大疏锦行 &#x1f4d8; Day 45 实战作业&#xff1a;给模型装上仪表盘 —— TensorBoard 实战 1. 作业综述 核心目标&#xff1a; 环境搭建&#xff1a;安装并启动 TensorBoard。指标监控 (Scalar)&#xff1a;不再盯着控制台刷屏&#xff0c;而是画出漂亮的 Loss 和 Ac…

2026年转行AI大模型必备:两个高薪岗位,让你年后求职弯道超车

文章指出当前就业市场低迷&#xff0c;但春节后很快进入春招旺季&#xff0c;建议现在就开始准备。重点推荐两个普通人也能入行的AI方向&#xff1a;AI大模型应用开发师&#xff08;年薪最高72万&#xff09;和AI大模型训练师&#xff08;年薪最高45万&#xff09;。AI行业正处…

一文搞清微调技术的发展与演进

现在的大语言模型发展得非常快&#xff0c;从几亿参数到千亿参数&#xff0c;不仅模型越来越大&#xff0c;能力也越来越强。但是在实际工作中&#xff0c;我们很少会从零开始训练一个这样的巨无霸模型&#xff0c;因为那样的成本和资源需求实在太高了。更多的时候&#xff0c;…

linux的root目录缓存清理

1. 找出隐藏的大文件 / 文件夹&#xff08;关键步骤&#xff09;先执行以下命令&#xff0c;查看 /root 下所有文件&#xff08;包括隐藏文件&#xff09; 的空间占用&#xff0c;定位具体占用空间的文件&#xff1a;# 查看/root下所有文件&#xff08;含隐藏&#xff09;的空间…

【收藏】LLM大模型全景解析:从零开始理解AI智能的诞生

LLM大模型是基于Transformer架构的海量参数模型&#xff0c;通过规模效应、自注意力机制和训练范式调整实现通用智能。工作流程包括分词、嵌入表示、多层Transformer堆叠和概率预测&#xff0c;实现数据压缩→规律学习→智能涌现。LLM有Decoder-Only、Encoder-Only和Encoder-De…

深度学习计算机毕设之通过python_CNN卷积神经网络对鸡蛋是否破损识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

mysql之联合索引

文章目录 一&#xff1a;联合索引二&#xff1a;创建联合索引三&#xff1a;删除索引四&#xff1a;总结&#xff1a; 一&#xff1a;联合索引 联合索引又称组合索引或者复合索引&#xff0c;是建立在俩列或者多列以上的索引。 二&#xff1a;创建联合索引 语法&#xff1a…

mysql之字符串函数

假设我们有一个字符串 Hello, World! 作为示例&#xff0c;我们会展示对这个字符串应用每个函数后的结果。 CONCAT(str1, str2, …) 将多个字符串值连接成一个字符串。 SELECT CONCAT(Hello, , World!); -- 结果: Hello, World!LENGTH(str) 返回字符串的长度&#xff08;字节数…

大模型入门必看:一篇读懂AI大模型核心知识,建议收藏!

本文全面介绍了AI大模型家族的基础知识&#xff0c;包括AIGC的两种类型和三个发展阶段&#xff0c;详细解释了AI、机器学习、深度学习、生成式AI和大语言模型之间的关系与区别。重点阐述了Transformer架构及其自注意力机制在大语言模型中的核心作用&#xff0c;以及大语言模型的…

MySQL如何删除binlog日志文件

MySQL如何删除binlog日志文件呢&#xff1f; 1、使用命令手动在操作系统中删除,但是这种删除并没有从数据库逻辑层面删除&#xff0c;数据库里还记录着这条日志&#xff0c;可能会有一些问题。 进入到MySQL数据目录下&#xff0c;rm -rf 日志文件2、使用SQL命令删除&#xff0c…

js遍历数组和对象的常用方法有哪些?

精通 JS 遍历&#xff1a;数组与对象的高效遍历方法论&#xff08;2026 版&#xff09;遍历是 JavaScript 数据处理的基石&#xff0c;从前端 DOM 渲染到后端数据聚合&#xff0c;几乎所有业务场景都离不开数组和对象的遍历操作。但新手常陷入 “方法用错、性能低效、边界踩坑”…

NAT技术:互联网连接的隐形桥梁

目录 一、NAT 技术&#xff1a;从地址短缺到连接复用 1、背景&#xff1a;IPv4 地址枯竭与私有地址的诞生 2、基本 NAT&#xff08;Basic NAT&#xff09;&#xff1a;一对一地址转换 工作原理&#xff1a; 示例&#xff1a; 局限性&#xff1a; 3、NAPT&#xff08;Net…

Redis的两个小错误

说明&#xff1a;本文介绍关于自己遇到的 Redis 相关的两个小错误 问题一&#xff1a;配置没生效 在 Linux 中启动 redis 服务&#xff0c;发现配置文件中的设置没有起作用&#xff0c;设置了密码和可访问地址&#xff0c;没用 发现没起作用&#xff0c;我在服务器上启动 red…

深度学习计算机毕设之基于人工智能python-CNN卷积神经网络对土豆疾病识别基于python-CNN卷积神经网络对土豆疾病识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

mysql如何创建用户并且授权

在 MySQL 中可以使用以下步骤创建用户&#xff1a; 1.使用管理员账户登录到 MySQL&#xff1a; - 打开命令行终端&#xff0c;输入以下命令以管理员身份登录 MySQL&#xff08;假设 MySQL 安装在默认位置且管理员用户为root&#xff0c;密码为your_root_password&#xff09;&a…

Springboot校园二手交易平台lca16(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。

系统程序文件列表项目功能&#xff1a;商品分类,用户,二手商品开题报告内容一、选题背景与意义&#xff08;一&#xff09;选题背景随着高等教育的普及和校园生活的丰富多彩&#xff0c;大学生在日常学习和生活中产生了大量的闲置物品&#xff0c;如书籍、电子产品、生活用品等…

深度学习毕设项目:基于python-CNN卷积神经网络的水果识别

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…