news 2026/5/25 15:14:16

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/5/11 19:20:11

从零实现简易电源适配器:整流二极管接入全过程

从零搭建一个能用的电源适配器&#xff1a;整流二极管怎么接才不翻车&#xff1f; 你有没有试过自己搭个电源给单片机供电&#xff0c;结果一上电&#xff0c;二极管冒烟、输出电压不对、滤波电容“滋滋”响&#xff1f;别急&#xff0c;问题很可能出在 整流环节 ——尤其是那…

作者头像 李华
网站建设 2026/5/22 18:30:33

终极指南:构建自定义骑行机器人的完整本地部署方案

终极指南&#xff1a;构建自定义骑行机器人的完整本地部署方案 【免费下载链接】zwift-offline Use Zwift offline 项目地址: https://gitcode.com/gh_mirrors/zw/zwift-offline 在虚拟骑行训练日益普及的今天&#xff0c;ZWIFT-OFFLINE项目为骑行爱好者提供了一个强大的…

作者头像 李华
网站建设 2026/5/20 21:00:04

Multisim14.2安装教程:Windows 10系统完整指南

Multisim 14.2 安装实战指南&#xff1a;从零部署到稳定运行&#xff08;Windows 10 环境&#xff09;你是不是也遇到过这样的情况&#xff1f;下载好了 Multisim 14.2 的安装包&#xff0c;满怀期待地点开 setup.exe&#xff0c;结果弹出一堆错误提示——“许可证服务未启动”…

作者头像 李华
网站建设 2026/5/9 8:40:33

OpenCore Configurator实战指南:5大核心技巧让黑苹果配置更高效

OpenCore Configurator实战指南&#xff1a;5大核心技巧让黑苹果配置更高效 【免费下载链接】OpenCore-Configurator A configurator for the OpenCore Bootloader 项目地址: https://gitcode.com/gh_mirrors/op/OpenCore-Configurator OpenCore Configurator作为黑苹果…

作者头像 李华
网站建设 2026/5/22 20:41:28

pvetools深度重构:解锁Proxmox VE系统管理的全新维度

pvetools深度重构&#xff1a;解锁Proxmox VE系统管理的全新维度 【免费下载链接】pvetools pvetools - 为 Proxmox VE 设计的脚本工具集&#xff0c;用于简化邮件、Samba、NFS、ZFS 等配置&#xff0c;以及嵌套虚拟化、Docker 和硬件直通等高级功能&#xff0c;适合系统管理员…

作者头像 李华
网站建设 2026/5/12 16:24:01

HopToDesk v1.45.2 | 开源免费远程桌面工具

HopToDesk v1.45.2 是一款跨平台开源的免费商用远程桌面工具&#xff0c;个人与企业均可无限制使用&#xff0c;核心覆盖屏幕共享、远程控制、文件传输等远程协作需求&#xff0c;搭配端到端加密技术保障隐私安全&#xff0c;无需复杂配置即可快速实现设备互联&#xff0c;是高…

作者头像 李华