news 2026/6/10 14:03:23

C++求最长回文子串——Manacher(马拉车)算法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++求最长回文子串——Manacher(马拉车)算法

一、问题背景

求最长回文子串(长度),数据规模超大时唯一可行的O(n)算法

二、Manacher 的核心思想

利用回文的对称性,避免重复扩展,从而把所有扩展操作压缩到 O(n)。

三、关键技巧 1:统一奇偶回文

原串: a a a b b a c 处理后:^# a # a # a # b # b # a # c # $

好处:
所有回文长度统一为“奇数”;回文中心永远是一个字符;始末特殊字符避免扩展时超出边界。

四、关键技巧 2:回文半径数组 p[]

p[i] 表示:以 i 为中心,向左右能扩展的最大半径,即为去掉填充字符后回文串的长度。

五、关键变量(运行时维护)

center:当前最右回文的中心
right :该回文能覆盖到的最右端位置
始终满足:

right=center+p[center]

六、Manacher 的核心步骤

对每个位置 i:
① 计算对称点mirror = 2 * center - i

② 初始化 p[i]
如果 i < right:p[i] = min(right - i, p[mirror])
否则:p[i] = 0

③ 尝试继续向两边扩展

while(t[i+p[i]+1]==t[i-p[i]-1])p[i]++;

④ 更新最右回文

if(i+p[i]>right){center=i;right=i+p[i];}

最长回文子串长度 = max(p[i])

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/7 1:41:37

医疗指南智能查询:医生快速获取诊疗建议的新方式

医疗指南智能查询&#xff1a;医生快速获取诊疗建议的新方式 在三甲医院的急诊科&#xff0c;一位值班医生正面对一名突发胸痛的患者。他需要迅速判断是否为急性肺栓塞&#xff0c;并决定抗凝治疗方案。时间就是生命——但最新的《肺栓塞诊治指南》还躺在医务科上周刚下发的PDF…

作者头像 李华
网站建设 2026/6/10 12:33:06

Zotero-Better-Notes关系图谱终极指南:5步构建你的知识网络

想要在海量笔记中一眼看清知识关联&#xff1f;Zotero-Better-Notes&#xff08;ZBN&#xff09;的关系图谱功能正是你的理想选择。这款强大的Zotero插件让笔记管理从线性结构跃升为可视化网络&#xff0c;通过直观的节点连接展示知识间的复杂关系。本文将带你从零开始&#xf…

作者头像 李华
网站建设 2026/6/4 23:56:56

如何为anything-llm添加自定义品牌LOGO?白标功能说明

如何为 Anything-LLM 添加自定义品牌LOGO&#xff1f;白标功能深度解析 在企业级AI应用日益普及的今天&#xff0c;一个看似微小却至关重要的细节正被越来越多的技术决策者关注&#xff1a;系统界面是否还能看出“开源项目”的痕迹&#xff1f; 设想这样一个场景&#xff1a;你…

作者头像 李华
网站建设 2026/5/21 4:27:35

Elasticvue:浏览器端Elasticsearch管理工具完全指南

Elasticvue&#xff1a;浏览器端Elasticsearch管理工具完全指南 【免费下载链接】elasticvue Elasticsearch gui for the browser 项目地址: https://gitcode.com/gh_mirrors/el/elasticvue 在当今数据驱动的时代&#xff0c;Elasticsearch已成为企业级搜索和分析引擎的…

作者头像 李华
网站建设 2026/6/9 21:31:54

米游社自动签到终极指南:游戏福利一键获取神器

米游社自动签到终极指南&#xff1a;游戏福利一键获取神器 【免费下载链接】MihoyoBBSTools Womsxd/AutoMihoyoBBS&#xff0c;米游社相关脚本 项目地址: https://gitcode.com/gh_mirrors/mi/MihoyoBBSTools 还在为每天重复登录米游社手动签到而烦恼吗&#xff1f;Mihoy…

作者头像 李华
网站建设 2026/5/31 4:31:06

产品需求文档(PRD)智能查询:用anything-llm提效研发

产品需求文档智能查询&#xff1a;用 Anything-LLM 赋能研发提效 在现代软件研发中&#xff0c;一个让人又爱又恨的现实是&#xff1a;产品需求文档&#xff08;PRD&#xff09;越写越厚&#xff0c;但真正被读完的却越来越少。开发人员常常陷入“翻了半小时PDF&#xff0c;只为…

作者头像 李华