




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
求最大重复子串 江苏金陵中学 林希德,题目,字符串W由大写字母组成,W中包含一 些连续出现两次的相同子串,称之为重复子 串。重复子串的大小决定于循环节的长度。,W =“B B A A B A B A A B A B B”,A B A A B A,举例,B B,循环节长度为3,循环节长度为1,请你求出最大重复子串的循环节长度。,题目,字符串W由大写字母组成,W中包含一 些连续出现两次的相同子串,称之为重复子 串。重复子串的大小决定于循环节的长度。,数据规模,n = |w| = 100000,O(n2),O(nlg2n),O(n),后缀树,两个辅助算法,O(n),KMP模式匹配,O(n+m),为方便表达,使用,表示开始于位置u结束于位置v的W的子串,W ( u ,v ),问题的转化,1、S中的字符以L为周期循环出现 S i = S i + L (u = i = v - L),求出所有最优子串连同它们的周期,定义S是循环周期为L的最优子串,仅当S满足:,2、|S| = 2 L,即S至少包括两个完整循环节。,3、S不能向左扩展, 即u = 1 或者 W(u-1,v)不满足条件1 4、S不能向右扩展, 即 v = n 或者 W(u,v+1)不满足条件1,最大重复子串必然被某个最优子串包含!,算法基本框架,1、找到S的一个完整循环节,2、根据循环节将S分别向左、向右扩展到不 能扩展为止,3、判断扩展以后的S是否长度 = 2 L,如果是,则认为找到了一个循环周期为L的最优子串S。,?,如果字母Q1从未在P中出现过, 那么 Ui = Q1 否则 Ui = P中出现过的Q的最长前缀,一、字符串分解,Ui-1,P,Q,Ui-2,U1,字符串W,将W分解成 W = U1 + U2 + U3 + + Um 的形式,其中Ui定义如下:,W = P + Q,P = U1 + U2 + + Ui-1,Q1,只要字符串x的开始位置在P内,就认为x在P中出现过!,A B A A B A B A A B A B B,举例,P,Q,A,A B A A B A B A A B A A B,举例,P,Q,B,A B A A B A B A A B A A B,举例,P,Q,A,A,A B A A B A B A A B A A B,举例,P,Q,A B A,A B A,A B A A B A B A A B A A B,举例,P,Q,B A A B A,B A A B A,A B A A B A B A A B A A B,举例,P,Q,A B A A B A B A A B A A B,举例,字符串分解过程借助“后缀树”算法实现,A B,A B,怎样利用字符串分解的特殊定义找到最优子串S的一个完整循环节呢?,S的循环节能有多长呢?,分类讨论。,二、寻找完整循环节,问题:,S的开始位置在何处呢?,解决方法:,假设S的结束位置在固定片断Ui内,一定要记住:整数i是个已知常量!,S的开始位置也在Ui内.,Ui在P中某处出现过 S在P中某处出现过 为避免重复工作,此情况不予考虑!,最优子串S,Ui,P,Q,S的开始位置不能太迟,这里用到了字符串分解的定义,最优子串S,b. 最末循环节包含Ui-1,Ui,Ui-1,P,Q,最末循环节,红色和绿色线段标示了相同的子串 根据定义,|Ui-1| = 红色线段 矛盾,情况b不存在。,S的循环节不能太长,这里再次用到了字符串分解的定义,Ui-1,最优子串S,c. |S位于Ui-1之前的子串| = 循环周期L,Ui,Ui-1,P,Q,最末循环周期,红色和绿色线段标示了相同子串 根据定义,|Ui-1| = 红色线段 矛盾,情况c也不存在。,S的开始位置不能太早,这里又一次用到了字符串分解的定义,重要结论1,1. S的开始位置早于Ui且最末循环节没有将Ui-1包含在内,故 L |Ui-1 + Ui|,2. |S位于Ui-1之前的子串| 循环周期L,故 |S| 2|Ui-1 + Ui|,开始 位置,Ui-1,P,Q,最优子串S,Ui,Ui,循环周期L,Ui-1,最末循环节,重要结论1,Ui-1,V,U,进一步分类 因为|S| = 2, 故下列两种情况S必居其一: 情况1. S在V中的长度 = L 情况2. S在U中的长度 = L,最优子串S,Ui,实际就是的一个完整循环节,U(1,L),这个结论很重要!,找到循环节了!,V,U,最优子串S,1、尽量向右扩展,三、循环节扩展和长度判定,完整循环节,2、尽量向左扩展,3、如果扩展以后的|S| = 2L,那么 S是最优子串。,U(1,L)实际就是的一个完整循环节,找到循环节了!,B B A A B A B A A B A B B,举例,V,U,寻找循环周期为5的最优子串,完整循环节,举例,B B A A B A B A A B A B B,V,U,寻找循环周期为5的最优子串,完整循环节,举例,B B A A B A B A A B A B B,V,U,寻找循环周期为5的最优子串,完整循环节,举例,B B A A B A B A A B A B B,V,U,结束位置,寻找循环周期为5的最优子串,完整循环节,举例,B B A A B A B A A B A B B,V,U,寻找循环周期为5的最优子串,完整循环节,结束位置,举例,B B A A B A B A A B A B B,V,U,寻找循环周期为5的最优子串,完整循环节,结束位置,举例,B B A A B A B A A B A B B,V,U,寻找循环周期为5的最优子串,完整循环节,结束位置,举例,B B A A B A B A A B A B B,V,U,寻找循环周期为5的最优子串,完整循环节,结束位置,举例,B B A A B A B A A B A B B,V,U,开始位置,长度判定: |S| = 11 = 2 * 5,寻找循环周期为5的最优子串,结束位置,S是合法最优子串,完整循环节,V,U,完整循环节,辅助函数和重要结论2,B B A A B A B A A B A B B,LsL = U 与U(1+L,|U|)的最长公共前缀,LpL = V 与V + U(1,L)的最长公共后缀,当且仅当|LsL + LpL| = L时,存在唯一的周期为L的最优子串 LsL + U(1,L) + LpL,A B,向右扩展,B A A B,向左扩展,长度判定,B A A B,A B,长度判定: |S| = 11 = 2 * 5,S是合法最优子串,使用一次“KMP模式匹配的推广算法”在线性时间内求出所有Lp和Ls的函数值,四、枚举所有最优子串,因为:Ls函数定义中,第一个有待比较前缀的字符串总是U Lp函数定义中,第一个有待比较后缀的字符串总是V 所以:我们可以,然后:从 1 到 |Ui + Ui-1| 枚举循环节的长度L, 并在枚举的同时判断是否 |LsL + LpL| = L, 即可:,找出所有最优子串连同它们的周期。,这样Lp和Ls函数的平摊求解复杂度为O(1),LsL = 与U(1+L,|U|)的最长公共前缀,LpL = 与V + U(1,L)的最长公共后缀,U,V,算法基本框架回顾和完善,字符串分解 answer = 0,令 V = 长度为 |Ui| + 2 * |Ui-1|的P的后缀 U = Ui,For i = 2 to m do End For,针对情况1:S在V中的长度 = L End 情况1,1、 求出函数Ls和函数Lp的值,针对情况2:S在U中的长度 = L End 情况2,2、 For L=1 to |Ui-1 + Ui|-1 do,输出 answer,If |LsL| + |LpL| = L,Then 用L更新answer的值
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国瓜干酒行业调研分析及发展趋势预测研究报告
- 2025-2030中国珠宝零售行业市场发展现状及竞争格局与投资前景研究报告
- 2025-2030中国环氧康唑行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030中国玉米联合收割机行业前景预测与投资战略规划研究研究报告
- 2025-2030中国狗粪清除器行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030中国牛肉干行业供需趋势及投资风险研究报告
- 2025-2030中国牙科蜡加热器行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030中国煮蛋器行业市场现状供需分析及投资评估规划分析研究报告
- 2024-2025学年山东、湖北部分重点中学高考考前模拟物理试题含解析
- 2025-2030中国烘焙产品的水果配制行业市场现状供需分析及投资评估规划分析研究报告
- 普通冲床设备日常点检标准作业指导书
- DBT29-265-2019 天津市市政基础设施工程资料管理规程
- -城乡规划法-最新课件
- DB44∕T 1188-2013 电动汽车充电站安全要求
- DB32T 4013-2021 第三方社会稳定风险评估技术规范
- 环网柜出厂检验规范标准
- 人教统编版高中语文必修下册第八单元(单元总结)
- 第三章卫星运动基础与GPS卫星星历
- 三年级美术下册 第12课《班级小报》课件1 浙美版
- 客户信用等级评价表
- 中国各省份分地市地图(矢量图)
评论
0/150
提交评论