【问题标题】:Strings intersection字符串交集
【发布时间】:2017-11-27 15:29:16
【问题描述】:

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

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

// result -> 'efg'

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

请推荐一些有关该主题的书籍或文章。

【问题讨论】:

    标签: javascript string search intersection


    【解决方案1】:

    应用旨在处理多个序列的最长公共子字符串算法应该可以让您找到它。

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

    多重最长公共子序列问题 (MLCS) 是找到 两个或多个字符串之间共享的最长子序列。它是一个 NP-hard 问题 [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/

    【讨论】:

    • 如果同时有两个呢?
    • “同时有两个”是什么意思?
    • 例如,如果您有'123abxxx23abc''123abyyyy23abc',那么您有两个公共字符串['123ab', '23abc']
    • 你是完全正确的......我会编辑我的答案。蒂尼娜
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多