gpt4 book ai didi

algorithm - 找出唯一的最长公共(public)子序列的数量

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:36:44 27 4
gpt4 key购买 nike

对于 2 个字符串,我想找出不同 LCS 的数量。我在 wiki 上阅读了如何打印所有 LCS,但如何检查它们是否不同?哈希表不可行,因为我的输入字符串每个可以有 1500-2000 个字符长,所以 LCS 的最大数量可以是 2000,选择 1000

最佳答案

找到每个子序列后,将它们插入 trie 的惰性版本中.

Trie 存在内存浪费问题。因此,不是将值存储到最后,而是仅在需要解决冲突时才分支。

例如。安娜,应用程序,安妮

最初,根节点中会有 anna。

当您尝试插入应用程序时,您意识到根目录下已经有一个字符串,因此在 a 中创建一个分支并尝试放入 anna 和应用程序。冲突一直持续到你 split 成anna 和apps。

目前,trie 看起来像:

                                    a
(anna) n p (apps)

现在当您插入 anne 时,您将到达 an 并意识到存在冲突并通过添加 n 分支和 a 来解决它> 和 e 分支机构。

最终的 trie 将如下所示:

                                    a
n p (apps)
n
(anna) a e (anne)

关于algorithm - 找出唯一的最长公共(public)子序列的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1660641/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com