1 / 3
文档名称:

manacher算法求最长回文子串.docx

格式:docx   大小:21KB   页数:3页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

manacher算法求最长回文子串.docx

上传人:260933426 2022/4/17 文件大小:21 KB

下载得到文件列表

manacher算法求最长回文子串.docx

相关文档

文档介绍

文档介绍:首先用一个非常巧妙的方式,将所有可能的奇数/偶数长度的回文子串都转换成了奇数长度:在每个字符的两边都插入一个特殊的符号。比如 abba 变成 #a#b#b#a#, aba变成 #a#b#a#。 为了进一步减少编码的复杂度,可以在字符串的开始首先用一个非常巧妙的方式,将所有可能的奇数/偶数长度的回文子串都转换成了奇数长度:在每个字符的两边都插入一个特殊的符号。比如 abba 变成 #a#b#b#a#, aba变成 #a#b#a#。 为了进一步减少编码的复杂度,可以在字符串的开始加入另一个特殊字符,这样就不用特殊处理越界问题,比如$#a#b#a#(注意,下面的代码是用C语言写就,由于C语言规范还要求字符串末尾有一个'\0'所以正好OK,但其他语言可能会导致越界)。下面以字符串12212321为例,经过上一步,变成了 S[] = "$#1#2#2#1#2#3#2#1#";然后用一个数组 P[i] 来记录以字符S[i]为中心的最长回文子串向左/右扩张的长度(包括S[i],也就是把该回文串“对折”以后的长度),比如S和P的对应关系:
S  #  1  #  2  #  2  #  1  #  2  #  3  #  2  #  1  #
P  1  2  1  2  5  2  1  4  1  2  1  6  1  2  1  2  1
(. 可以看出,P[i]-1正好是原字符串中回文串的总长度)
那么怎么计算P[i]呢?该算法增加两个辅助变量(其实一个就够了,两个更清晰)id和mx,其中 id 为已知的 {右边界最大} 的回文子串的中心,mx则为id+P[id],也就是这个子串的右边界。然后可以得到一个非常神奇的结论,这个算法的关键点就在这里了:如果mx > i,那么P[i] >= MIN(P[2 * id - i], mx - i)。就是这个串卡了我非常久。实际上如果把它写得复杂一点,理解起来会简单很多:
//记j = 2 * id - i,也就是说 j 是 i 关于 id 的对称点(j = id - (i - id))if (mx - i > P[j]) 
    P[i] = P[j];else /* P[j] >= mx - i */
    P[i] = mx - i; // P[i] >= mx - i,取最小值,之后再匹配更新。
当然光看代码还是不够清晰,还是借助图来理解比较容易。当 mx - i > P[j] 的时候,以S[j]为中心的回文子串包含在以S[id]为中心的回文子串中,由于 i 和 j 对称,以S[i]为中心的回文子串必然包含在以S[id]为中心的回文子串中,所以必有 P[i] = P[j],见下图。
当 P[j] >= mx - i

最近更新

中国大唐集团公司综合类职业技术教育培训基地.. 22页

2024年胰岛素项目投资申请报告代可行性研究报.. 68页

2024年橡胶助剂资金筹措计划书代可行性研究报.. 57页

2024年筒灯资金需求报告代可行性研究报告 61页

重庆市2024年八年级下册地理期中试卷 4页

高三下学期陈述报告100字集合8篇 10页

贫困生补助申请书1000字(33篇) 64页

运动会加油稿简短汇编【9篇】 4页

部编版六年级上册语文《竹节人》教案优质(34.. 211页

铝合金门窗工程承包合同 18页

锅炉维修申请书 3页

2024年三乙胺资金申请报告代可行性研究报告 67页

2024年葡萄汁项目投资申请报告代可行性研究报.. 55页

《疏水阀和检测》 57页

幼儿培训项目融资方案 39页

居家手工制作项目融资方案 36页

2024年江苏省徐州市睢宁县小升初总复习语文测.. 6页

2024年小学招生启事 25页

《机械制造基础》 51页

追女孩子的短信 36页

《LED产品整理》 37页

初中生物教学与小学科学衔接的研究的开题报告.. 2页

四年级心理健康教育教学计划+教案(全册) 51页

优化营商环境发展座谈会发言材料 3页

互联网解聘备案业务信息更正申请表模板 2页

铸牢中华民族共同体意识解读PPT课件 22页

中考签约合同 37页

《福建省建筑工程施工文件管理规程和表格填写.. 2页

技术服务外包合同 5页

节水及水平衡在线自测答案 8页