news 2026/4/15 10:33:00

【剑斩OFFER】算法的暴力美学——最长回文子串

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【剑斩OFFER】算法的暴力美学——最长回文子串


一、题目描述

二、算法原理

思路:中心扩展算法

我们要遍历字符串,然后固定当前字符串中遍历的字符,例如上图,每次遍历一个字符,那么先让定义两个指针指向当前字符,if : s【 left 】 == s 【 right 】 ,则:left--,right++; if:s[ left ] != s[ right ] ,跟新最长回文字符串:s.substr( left + 1,right - left - 1),然后不断的重复上面的步骤,就是,都是上图是奇数回文(最长的回文的长度是奇数),当遇到偶数回文时就不行:

最终构造出来的回文字符串:b,不符合题目要求,所以我们要遍历两次,第一次是奇数回文遍历,第二次是偶数回文遍历,总结也就是完成上面的遍历之后,不要急于固定下一个字符,我们要让:left = i,right = i + 1,判断条件跟上面的一样:

此时构造出来的字符串就是我们要的答案:bb

三、代码实现

class Solution { public: string longestPalindrome(string s) { string same;//最长回文 int count = 2;//第一次奇数回文判断,第二次偶数 for(int i = 0; i < s.size(); i++) { int left = i,right = i;//第一次从同一个下标开始 while(count >= 1) { if(left >= 0 && right < s.size() && s[left] == s[right]) { //两边扩散 left--; right++; } else { //奇数或者偶数回文查找结束,更新 same 值 if(same.size() < (right - left -1)) same = s.substr(left + 1,right - left - 1); //偶数回文判断 left = i; right = i + 1; count--; } } count = 2;//为下一次做准备 } return same; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/12 1:53:32

关于我想把github当成云盘这档子事

1.网页端上传文件要求不大于25MB&#xff0c;终端上传要求不大于100MB2.烦死人的443错误和RPC错误解决方法&#xff1a;1.大文件还是用回云盘吧骚年&#xff0c;就算是后续提到的解决方法LFS也有限制额度2.git config --global http.postBuffer 524288000&#xff0c;调整单次上…

作者头像 李华
网站建设 2026/4/13 12:40:40

StardewXnbHack:星露谷物语Mod开发者的资源提取利器

StardewXnbHack&#xff1a;星露谷物语Mod开发者的资源提取利器 【免费下载链接】StardewXnbHack A simple one-way XNB unpacker for Stardew Valley. 项目地址: https://gitcode.com/gh_mirrors/st/StardewXnbHack 在星露谷物语Mod开发过程中&#xff0c;游戏资源提取…

作者头像 李华
网站建设 2026/4/15 14:30:48

OBS智能字幕系统进阶指南:打造专业级直播转录方案

OBS智能字幕系统进阶指南&#xff1a;打造专业级直播转录方案 【免费下载链接】OBS-captions-plugin Closed Captioning OBS plugin using Google Speech Recognition 项目地址: https://gitcode.com/gh_mirrors/ob/OBS-captions-plugin OBS字幕插件通过Google语音识别技…

作者头像 李华
网站建设 2026/4/12 3:10:52

终极Windows桌面整理神器:Traymond窗口管理全攻略

终极Windows桌面整理神器&#xff1a;Traymond窗口管理全攻略 【免费下载链接】traymond A simple Windows app for minimizing windows to tray icons 项目地址: https://gitcode.com/gh_mirrors/tr/traymond 你是否经常因为桌面上堆满了各种窗口而感到烦躁&#xff1f…

作者头像 李华
网站建设 2026/4/15 9:10:02

GmSSL国密算法终极指南:3大应用场景+5步实战部署

GmSSL国密算法终极指南&#xff1a;3大应用场景5步实战部署 【免费下载链接】GmSSL 支持国密SM2/SM3/SM4/SM9/SSL的密码工具箱 项目地址: https://gitcode.com/gh_mirrors/gm/GmSSL GmSSL是一个全面支持国密SM2/SM3/SM4/SM9/SSL的密码工具箱&#xff0c;为开发者提供了完…

作者头像 李华
网站建设 2026/4/10 20:58:12

5分钟解锁B站4K高清下载:开源神器完整使用手册

5分钟解锁B站4K高清下载&#xff1a;开源神器完整使用手册 【免费下载链接】bilibili-downloader B站视频下载&#xff0c;支持下载大会员清晰度4K&#xff0c;持续更新中 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-downloader 还在为无法保存B站优质内容…

作者头像 李华