我有三个带字符串值的变量。需要找到所有三条线之间最长的交叉点。像这样:
let str1 = 'abc123efg';
let str2 = 'c123efg';
let str3 = 'abcdefg';
// result -> 'efg'
然而,通过使用4 用于 循环来解决问题。简而言之,我把绳子切成不同长度的碎片,然后将它们与其他所有绳子进行比较。我不认为这是正确的方法。
请告知一些有关该主题的书籍或文章。
答案 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算法会有一个 对计算生物学方法及其影响的重大影响 应用