倍增法之后缀数组解决重复子串的问题

来源 :中国新通信 | 被引量 : 0次 | 上传用户:q19070
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘要】后缀数组是处理字符串的有力工具。利用后缀数组解决字符串问题,无论是在时间复杂度和空间复杂度上,都非常有优势,在信息学竞赛中也是非常实用的一个工具。本文分两部分,第一部分介绍倍增法构造后缀数组,第二部分介绍简洁高效代码的实现与应用。
  【关键字】字符串 后缀 后缀数组 名次数组 快速排序
  后缀数组的实现,本节主要介绍后缀数组的倍增法实现。
  一、基本定义
  简单的说,后缀数组是“排第几的后缀串首字母在哪里?”,名次数组是“后缀串排第几?”。容易看出,后缀数组和名次数组为互逆运算。如图1所示。
  设字符串的长度为n。为了方便比较大小,可以在字符串后面添加一个字符,这个字符没有在前面的字符中出现过,而且比前面的字符都要小。在求出名次数组后,可以仅用0(1)的时间比较任意两个后缀的大小。在求出后缀数组或名次数组中的其中一个以后,便可以用0㈤的时间求出另外一个。任意两个后缀如果直接比较大小,最多需要比较字符n次,也就是说最迟在比较第n个字符时一定能分出“胜负”。
  二、倍增算法
  倍增算法的主要思路是:用倍增的方法对每个字符开始的长度为2k的子字符串进行排序,求出排名,即rank值。k从0开始,每次加1,当2k大于n以后,每个字符开始的长度为2k的子字符串便相当于所有的后缀。并且这些子字符串都一定已经比较出大小,即rank值中没有相同的值,那么此时的rank值就是最后的结果。每一次排序都利用上次长度的字符串的rank值,那么长度为2k的字符串就可以用两个长度为2k-1的字符串的排名作为关键字表示,然后进行排序,便得出了长度为2k的字符串的rank值。以字符串“aabaaaab”为例,整个过程如图2所示。其中x、y是表示长度为2k的字符串的两个关键字。
其他文献
中国设备管理协会于2006年4月18~30日组织国内有关企业参观了德国卡尔斯鲁厄国际二手设备博览会,期间重点访问了奥地利大型二手设备公司Hesse(海瑟)股份有限公司以及瑞士日内
农业生产要持续发展,必须实行科学的施肥制度。在现代农业生产中,施肥既要保证作物高产、优质、高效,又要培肥地力和保护环境,使土壤生产能力不断提高,促进农业生产持续发展
2.避免超负荷使用机床rn由于大型滚珠丝杠副和重型直线滚动导轨副、滚柱重载导轨副的成功制造及在机床上的应用,使工作台承载能力有了很大提高.有的机床配置多条重型滚动直线
【摘要】为了解决超高频RFID接收机低功耗和高集成度问题,本文基于超高频RFID技术、CMOS技术和接收机无线通信技术国内外研究现状,提供一种用于超高频RFID无线通信应用包络检波架构接收机方案。  【关键词】超高频RFID 接收机 CMOS技术 包络检波  一、引言  伴随着RFID技术和无线通信技术快速发展,人们对于RFID通信系统提出了更高要求,例如高集成度、低功耗和多标准多模式兼容等。而超
目前国内外有关植物识别、植物检索方面的技术尚未完善,文章通过总结国内外有关植物检索方面的优缺点,运用植物特征与植物检索表相结合的方法,结合图片信息的辅助,研发出基于植物模糊识别与名称检索的APP,有效实现植物学习,简单检索的功能;该APP可以为北京地区的广大群众提供简便可行的植物检索与识别服务,使得非植物学相关专业的人士以及游客能够更方便、快捷、准确的识别植物,更好的学习植物知识。
该文从挂篮荷载计算、施工流程、支座及临时固结施工、挂篮安装及试验、合拢段施工、模板制作安装、钢筋安装、混凝土的浇筑及养生、测量监控等方面人手,介绍了S226海滨大桥
【摘要】在图像识别过程中,根据图像的特征可以有多种识别方法。本文针对不变矩的特性,提取目标图像的不变矩,通过实验证明了矩特征对于具有旋转、尺度变换、缩放特性的目标具有良好特征匹配性能,较好地完成了图像的识别的要求。不变矩作为具有不变性的特征,在图像别中应用广泛。本文首先获取原始图像,然后对每一个目标图像利用Hu不变矩的方法提取其矩特征,并将提取出的矩特征作为识别的依据,从而完成对目标图像形状的识别
该文从挂篮荷载计算、施工流程、支座及临时固结施工、挂篮安装及试验、合拢段施工、模板制作安装、钢筋安装、混凝土的浇筑及养生、测量监控等方面人手,介绍了S226海滨大桥
期刊
一、阵发性室上性心动过速(PSVT) (一)终止急性发作:对QRS时间、形态正常的PSVT可选用以下治疗措施或药物:①兴奋迷走神经的措施如刺激咽喉引起恶心、呕吐,深吸气后屏气,用