版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ManacherAlgorithm——一个解决最长回文子串的线性方法 计42冯冠宇陈思琪引出概念作业中提到了子串以及回文的概念现在引入最长回文子串的概念:在一个字符串S(母串)中存在一个子串A满足 子串A回文,即A[i]=A[len-i-1] (len=strlen(A),0<=i<len)称A为回文子串最长的满足条件的A称为最长回文子串引出概念举个例子:Confuciussay:Madam,I’mAdam去掉大写以及符号空格S=“confuciussaymadamimadam”存在回文子串“ada”“madam”“amima”“ss”等最长回文子串为“madamimadam”一个问题给定一个母串S,求最长回文子串三个子问题:当S的长度len(S)为: (1)0<=len(S)<=500 (2)0<=len(S)<=10000 (3)0<=len(S)<=20000000第一问简单方法O(n^3)两重循环O(n^2)确定首尾得到一个子串O(n)对子串进行回文判定第二问对于每一个字符,向两边查找,发现不同则break;
可以得到以其为中心的最长子串对于所有得到的子串取最长的即可有两种情况:(1)“madam”“ma”与“am”相对于“d”对称
(2)“maddam”“mad”与”dam”直接对称则对于每个字符S[i],以S[i]为中心做一次,再以S[i]和S[i+1]为中心做一次一个小技巧考虑第二种情况在中心S[i]和S[i+1]间加入一个虚拟字符S[k]
(与其他字符均不相同即可,一般设为“#”)
情况可以转化为第一种,以S[k]为中心进行查找得到的结果为正确的结果加1(即加上了S[k])一个小技巧那么对于母串S每两个字符之间加上虚拟字符(包括第一个字符前以及最后一个字符后)假设原得到的回文子串为A[1]~A[k]加入虚拟字符后,得到的回文子串为#A[1]#A[2]#...#A[k-1]#A[k]#长度为2k+1(含有k+1个“#”)第三问事实上,不同字符所求出的最长子串之间存在一定联系而前面的方法没有利用到这种联系接下来讨论一个优美的算法——ManacherManacher根据之前提到的技巧,以下我们只讨论以一个字符为中心所得到回文串设定一个数组P:P[i]表示以A[i]为中心得到回文串向右延伸的长度(即(回文串长度+1)/2)如果能得到P数组,最长回文子串显然可以很快的求出问题转换为求P数组Manacher算法是从前往后进行的,所以当我们需要计算P[i]时,P[k](0<=k<i)都已求出记录mx为之前回文串向右延伸到的最右端的位置(max{k+P[k]-1}0<=k<i)记录id为得到mx的kManacherj为i点关于id的对称点,j=2*id-I当i>mx时显然i==mx+1此时可以当做第二种情况判断第一种情况id的回文串完全覆盖j的回文串(id-p[id]+1<j-p[j]+1)此时由于i,j关于id对称,显然p[i]=p[j]Manacher第二种情况当id的回文串无法完全覆盖j的回文串时(包含刚好覆盖的情况)(id-p[id]+1>=j-p[j]+1)对i的回文串显然被id的回文串覆盖的部分已经确定回文只需对超出部分进行判断(下图…部分)Manacher得到新的结果可以更新id与mx值id更新为imx更新为i+p[i]-1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 恒美智造微波消解仪-微波消解氧化铝应用方案
- 数控技术考试试卷(附答案)
- 防火涂料施工中毒应急演练脚本
- 矿山机电设备伤人应急演练脚本
- 污水处理工试题库及答案(高级工)
- 紫癜性肾炎患者的个案护理
- 机械工程测试技术试卷及答案
- 餐饮火灾应急预案制定
- 2026年跨境电商平台数据分析合同协议
- 科技创新成果转化奖励制度
- 2024全国二卷语文高考试题
- 试卷保密工作流程
- 在线交流新气象课件+2024-2025学年人教版(2024)初中信息科技七年级全一册
- 药剂科绩效工资分配方案
- 护理正高答辩常见问题
- 金属冶炼安全培训课件
- 工地试验室试验检测月报
- 体验技术设计的一般过程(手机支架的设计与制作)课件高中通用技术粤科版必修技术与设计
- 竞争情报理论与务实
- 大理双廊镇旅游产业可持续发展战略,mba旅游管理论文
- 广东某220kv升压站迁移改造工程220kV GIS系统调试方案
评论
0/150
提交评论