最长公共子串

✍ dations ◷ 2025-06-08 06:36:15 #算法,动态规划,组合数学

在计算机科学中,最长公共子串问题是寻找两个或多个已知字符串最长的子串。此问题与最长公共子序列问题的区别在于子序列不必是连续的,而子串却必须是。

字符串"ABABC","BABCA"以及"ABCBA"的最长公共子串是"ABC"。其他的公共子串包括"A"、"AB"、"B"、"BA"、"BC"以及"C"。

  ABABC    |||   BABCA    |||    ABCBA

问题定义

给定两个字符串,长度为 m {\displaystyle m} 的字符串 S {\displaystyle S} 以及长度为 n {\displaystyle n} 的字符串 T {\displaystyle T} ,求最长的子串 x {\displaystyle x} 同时是 S {\displaystyle S} 以及 T {\displaystyle T} 的连续子串。

问题可以一般化为k-公共子串问题——给定字符串的集合 S = { S 1 , . . . , S K } {\displaystyle {\displaystyle S=\{S_{1},...,S_{K}\}}} ,其中 | S i | = n i {\displaystyle |S_{i}|=n_{i}} Σ n i = N {\displaystyle \Sigma n_{i}=N} .。对于满足 2 k K {\displaystyle 2\leq k\leq K} k {\displaystyle k} ,找出至少是 S {\displaystyle S} k {\displaystyle k} 个字符串的公共子串的最长串。

利用广义后缀树,我们可以在 Θ ( n + m ) {\displaystyle \Theta (n+m)} 的时间复杂度内求出 S {\displaystyle S} T {\displaystyle T} 的最长公共子串的长度和他们的起始位置。而如果利用动态规划求解,则时间复杂度为 Θ ( n m ) {\displaystyle \Theta (nm)} 。而对于一般化的公共子串问题,使用动态规划的求解的时间复杂度为 Θ ( n 1 {\displaystyle \Theta (n_{1}} ·...· n K ) {\displaystyle n_{K})} ,利用广义后缀树则需 Θ ( N K ) {\displaystyle \Theta (N*K)} 的时间复杂度。

字符串集合的最长公共子串可以通过构造一棵广义后缀树, 然后去查找拥有来自所有集合中字符串的叶节点的最深的内部节点来得到。右图展示了字符串“ABAB”,“BABA”和“ABBA”对应的广义后缀树。为了方便后缀树的构造和区分字符串,每个串的结尾都添加了终结符“$”和字符串编号,分别变成了“ABAB$0”,“BABA$1”和 “ABBA$2”。如图所示,串“A”,“B”,“AB”和“BA”的节点对应的子树都包含来自所有字符串的叶节点。

假定字母表的大小是常数,构造这样的一颗后缀树的时间复杂度为 Θ ( N ) {\displaystyle \Theta (N)} 。这样,如果将整个树自底向上遍历,并在每个节点通过一个位向量标记每个节点的子树中出现过的所有字符串的,则k-公共子串问题可以以 Θ ( N K ) {\displaystyle \Theta (NK)} 的时间复杂度来解决。特别地,如果后缀树为常数时间的最近公共祖先检索做了优化,那么问题将可以在 Θ ( N ) {\displaystyle \Theta (N)} 的时间复杂度内解决.

相关

  • 稀有金属稀有元素是自然界中储量、分布稀少(一般地壳丰度为100ppm以下)且人类应用较少的元素总称。稀有元素常用来制造特种金属材料,如特种钢、合金等,在飞机、火箭、原子能等工业领域属
  • 台湾省政府功能业务与组织调整台湾省政府功能业务与组织调整,即台湾省虚级化,通常简称冻省或精省,是中华民国政府根据民国86年(1997年)第四次宪法增修条文第九条第三项的规定,于民国87年(1998年)将省移除“地方自
  • 1968年 因斯布鲁克第五届冬季世界大学生运动会于1968年1月21日至28日在奥地利因斯布鲁克举行。这既是奥地利首次主办冬季世界大学生运动会,也是因斯布鲁克既1964年冬季奥林匹克运动会后,举办的
  • 膨胀宇宙的远景有物理宇宙学家指出,宇宙的未来很可能为继续膨胀。如果事实如此,宇宙将因其膨胀而继续冷却,导致达到不足以维持生命的温度。因此,膨胀宇宙的未来又称为大冻结。膨胀宇宙的未来将
  • 宇宙少女宇宙少女(朝鲜语:우주소녀/宇宙少女 Woo Joo So Nyeo,又称:WJSN;英语:Cosmic Girls)为韩国STARSHIP娱乐和中国乐华娱乐联手推出的13人女子音乐组合,于2016年2月25日以《MoMoMo》一曲
  • 许不了许不了(白话字:Khó͘ Bē-liáu;1951年2月20日-1985年7月3日),本名叶铁雄,台湾新竹市人(出生于基隆市暖暖区),台湾知名的喜剧演员,有“台湾的卓别林”之美誉。许不了曾与三位女性有婚
  • 大三元三双(英语:Triple-double),台湾常以麻将术语称之“大三元”,指篮球比赛中,球员的个人表现在下列正面数据中的任何三项达到两位数:得分、篮板、助攻、抢断和盖帽,最常见的三双是在于
  • AIMA预言AIMA预言是拜占庭皇帝曼努埃尔一世统治期间(1143年-1180年)至安德洛尼卡一世统治期间(1183年-1185年)流行的一个有关科穆宁皇帝姓名首字母缩略字的预言。这个预言宣称按统治时间
  • ZalandoZalando SE是德国一家时尚电子商务互联网公司。它的在线销售的产品以鞋,时尚服装为主。该公司在2008年(由Rocket Internet(英语:Rocket Internet))创立于德国,总部设在柏林。从2008
  • 温布尔登站温布尔登站(英语:Wimbledon station)是英国全国铁路、西南铁路公司、伦敦地铁和伦敦电车连线的一个车站,位于默顿区的温布尔登。温布尔登是区域线、伦敦电车连线3号线和西南铁路