字符串交集

时间:2017-11-27 15:29:16

标签: javascript string search intersection

我有三个带字符串值的变量。需要找到所有三条线之间最长的交叉点。像这样:

let str1 = 'abc123efg';
let str2 = 'c123efg';
let str3 = 'abcdefg';

// result -> 'efg'

然而,通过使用4 用于 循环来解决问题。简而言之,我把绳子切成不同长度的碎片,然后将它们与其他所有绳子进行比较。我不认为这是正确的方法。

请告知一些有关该主题的书籍或文章。

1 个答案:

答案 0 :(得分:0)

应用设计用于处理多个序列的最长公共子串算法,可以让你找到它。

针对您的具体情况,在线查找“MLCS算法”,但......

  

多个最常见的子序列问题(MLCS)就是找到   两个或多个字符串之间共享的最长子序列。它是一个   NP难问题[35],在许多领域都有重要应用,如此   作为信息检索和计算生物学[3],[9],[42],   [44]。 30多年来,人们一直在努力寻找   MLCS问题的有效算法。然而,他们中的许多人,   解决两个字符串的MLCS最简单的情况,也称为   最常见的子序列(LCS)问题[24],[36],[39],[45],   或问题的三个字符串的特殊情况[21],[22]。虽然   已经针对任何给定的一般情况提出了几种方法   字符串数量[11],[22],[27],[29],它们可以大大受益   从改善他们的计算时间。一种解决问题的方法   一般的MLCS问题可以有效地应用于许多计算   涉及生物学的生物学和计算基因组学问题   序列[8],[28],[29],[43]。随着数量的增加   生物学数据和计算序列分析的普遍使用   工具,我们期望一般的MLCS算法会有一个   对计算生物学方法及其影响的重大影响   应用

http://ieeexplore.ieee.org/document/5530316/