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

【剑斩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; } };
http://www.jsqmd.com/news/209096/

相关文章:

  • OFD转PDF终极指南:3分钟掌握高效文档转换技巧
  • ComfyUI ControlNet Aux预处理工具完全配置手册:从零到精通的高效指南
  • XAPK转APK终极指南:3分钟解决Android应用安装难题
  • 5分钟快速上手:WindowResizer窗口强制调整神器全攻略
  • Poppins字体完全指南:从几何设计到多语言支持的18款字体详解
  • GmSSL国密通信协议实战指南:从TLCP到TLS 1.3的完整技术解析
  • Qwen3Guard-Gen-8B与NATS消息系统整合:轻量级通信中间件
  • GmSSL国密算法实战指南:5个关键步骤构建安全应用系统
  • StardewXnbHack:星露谷物语Mod开发者的资源提取利器
  • FFmpegGUI新手终极指南:零基础快速上手视频音频转码
  • JFlash烧录程序与J-Link驱动协同:核心要点说明
  • OFD转PDF终极指南:告别格式困扰,5分钟掌握高效转换技巧
  • FFmpegGUI视频转码神器:零基础也能轻松上手的高效工具
  • BRAM用于MAC层帧缓存的设计实例:项目应用
  • UEFITool 0.28 固件分析工具完整使用教程
  • Xbox手柄固件更新与macOS兼容性优化:360Controller驱动全面解决方案
  • 基于STM32的I2C时序精准控制EEPROM读写代码剖析
  • 在macOS上轻松安装360Controller:Xbox手柄驱动终极指南
  • TFT Overlay实战指南:高效游戏辅助工具深度解析
  • 零基础也能搞定!FFmpegGUI手把手教你视频转码超简单
  • UnityLive2DExtractor:Live2D资源提取工具使用指南
  • Vue流程图编辑器完全指南:3步打造专业级可视化应用
  • QModMaster:专业ModBus工业自动化通信实战指南
  • UEFITool 0.28:5分钟掌握UEFI固件分析终极指南
  • Xbox手柄macOS兼容性完全指南:从连接失败到完美操控
  • 模组管理高手秘籍:告别游戏崩溃的智能解决方案
  • UEFITool 0.28固件分析工具:从入门到精通的完整指南
  • 设计师必备!Poppins现代无衬线字体完整使用指南
  • Qwen3Guard-Gen-8B支持动态阈值调整:灵活控制误判率
  • Keil uVision5使用教程:系统时钟配置图解说明