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

化工类 网站模板济源网站建设济源

化工类 网站模板,济源网站建设济源,建设中学校园网站的来源,网站怎么做成中英文版5. 最长回文子串 - 力扣(LeetCode) 给你一个字符串 s,找到 s 中最长的 回文 子串。 示例 1: 输入:s "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。示…

5. 最长回文子串 - 力扣(LeetCode)

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

示例 1:

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

示例 2:

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

提示:

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

方法思路:中心扩展法

回文串的对称性是其核心特征。中心扩展法基于以下观察:

  1. 回文中心可以是单个字符(奇数长度)​,例如 "aba" 的中心是 'b'。
  2. 回文中心也可以是两个相同字符(偶数长度)​,例如 "abba" 的中心是两个 'b'。

算法步骤

  1. 遍历字符串中的每一个字符,将其视为可能的回文中心。
  2. 对每个中心,向左右两侧扩展,直到字符不匹配或到达边界。
  3. 记录扩展过程中得到的最大回文子串的起始和结束位置。

解决代码

 

class Solution {public String longestPalindrome(String s) {if (s == null || s.length() < 1) return "";int start = 0, end = 0;for (int i = 0; i < s.length(); i++) {// 处理奇数长度的回文(中心为单个字符)int len1 = expandAroundCenter(s, i, i);// 处理偶数长度的回文(中心为两个相同字符)int len2 = expandAroundCenter(s, i, i + 1);int maxLen = Math.max(len1, len2);// 更新最长回文的起始和结束位置if (maxLen > end - start) {start = i - (maxLen - 1) / 2;end = i + maxLen / 2;}}return s.substring(start, end + 1);}// 从中心向两侧扩展,返回回文的长度private int expandAroundCenter(String s, int left, int right) {while (left >= 0 && right < s.length() && s.charAt(left) == s.charAt(right)) {left--;right++;}return right - left - 1;}
}

代码解析

1. 主函数 longestPalindrome

  • 遍历所有可能的中心:每个字符都可以作为奇数长度回文的中心,每对相邻字符可以作为偶数长度回文的中心。
  • 计算最大长度:通过 expandAroundCenter 分别计算奇数和偶数情况的回文长度,取最大值。
  • 更新最长回文的位置:根据回文长度和中心位置,计算子串的起始和结束下标。

2. 辅助函数 expandAroundCenter

  • 向两侧扩展:从初始的左右位置开始,只要字符相等且不越界,就继续扩展。
  • 返回回文长度:循环结束后,回文的实际长度为 right - left - 1(因为最后一次扩展是无效的)。

复杂度分析

  • 时间复杂度:O(n²)。遍历每个字符需要 O(n),每次扩展最多需要 O(n) 次操作。
  • 空间复杂度:O(1)。仅使用常量额外空间。

总结

中心扩展法通过利用回文串的对称性,高效地解决了最长回文子串问题。其核心思想是从每个可能的中心向两侧扩展,寻找最大回文。相比于动态规划等其他方法,中心扩展法在空间复杂度上更具优势,且代码简洁易懂。

 


文章转载自:

http://AqXcgdmK.fhcwm.cn
http://Pe7BRfV5.fhcwm.cn
http://rcEhoT3J.fhcwm.cn
http://VNZzJaOe.fhcwm.cn
http://PW7u6Cp6.fhcwm.cn
http://9sEhDv1Q.fhcwm.cn
http://zXuvjYSS.fhcwm.cn
http://nHXyI2ye.fhcwm.cn
http://KrM3kBUl.fhcwm.cn
http://WLjJIza6.fhcwm.cn
http://yKMd9TZl.fhcwm.cn
http://kf9o2f6U.fhcwm.cn
http://T3vVSlCD.fhcwm.cn
http://RRSV6xNS.fhcwm.cn
http://C4CAcmq8.fhcwm.cn
http://M9DeIYhg.fhcwm.cn
http://H9UgBD2o.fhcwm.cn
http://7Ah9AWNo.fhcwm.cn
http://0KvKPXLJ.fhcwm.cn
http://UddYvFqv.fhcwm.cn
http://trJui7Yk.fhcwm.cn
http://59oBwLZv.fhcwm.cn
http://PiFxXzwX.fhcwm.cn
http://hRjsPHii.fhcwm.cn
http://6pW3TUdG.fhcwm.cn
http://qCB7Gs8H.fhcwm.cn
http://iZahsZDN.fhcwm.cn
http://011fxXCO.fhcwm.cn
http://asUNlAqR.fhcwm.cn
http://mQIqXUaL.fhcwm.cn
http://www.dtcms.com/wzjs/758358.html

相关文章:

  • com网站怎么注册上海企业展厅设计公司
  • 设计网站建设选题报告计算机前端
  • 小程序自己开发优化营商环境个人心得
  • 网站开发域名如何制作一个自己的网页网站
  • 外贸网站建设优化做微商网站的软文
  • 网站改版需求分析一个小胖子从网站做任务的网站故事
  • 商务网站建设与维护考试ftp网站地图怎么做
  • 医院网站模板免费下载沈阳做网站的公司推荐
  • 做预算查价格的网站是哪个好wordpress插件 图片上传
  • 网站的动态文字是怎么做的用php做视频网站有哪些
  • 网站建设帝国息烽县住房和城乡建设局网站
  • 免费网站建设图书下载产品
  • 网站建设是什么样的网站策划编辑的职责
  • 北京房山网站建设产品更新培训天津网站建设wangzhii
  • 怎么建立公司网站费用手机网站头部
  • 网站建设以及seo网页设计师培训教程
  • 专业网站设计报价小说主角重生之后做网站
  • 西安网站优化招聘网wordpress占用资源大
  • 企业网站建设的一般要素包括公众号开发收费价目表
  • 怎么优化自己公司的网站手机端网站建设教程
  • 舟山网站建设seowordpress标签显示图片
  • 四川省建设工程质量安全网站网站微营销公司哪家好
  • 无锡网站制作多少钱北京展厅设计公司
  • 手机网站开发的目的seo网站优化技术
  • 河北智能网站建设多少钱网站建设开发的规划流程
  • 网页与网站设计什么是抖动东莞免费自助建站模板
  • 互联网金融网站开发那个企业网站是用vue做的
  • 自己建设网站不会咋办呀网站规划文字说明
  • 用蜗牛做logo的网站深圳竞价托管公司
  • 重庆九龙坡营销型网站建设公司哪家专业建站至尊