String 是否可以为无序集而不是字符串构建后缀trie?

String 是否可以为无序集而不是字符串构建后缀trie?,string,algorithm,set,np,suffix-tree,String,Algorithm,Set,Np,Suffix Tree,我正在尝试编写一个算法,用于计算“无序字符串”(即字符集)列表的最大后缀树/trie/数组。目标是在内存中最少地表示这些集合。已经有这样的算法了吗 例如,给定以下输入: [{"A", "B", C"}, {"A", "C", "D"}, {"C", "A"}, {"C", "A"}, {"A&quo

我正在尝试编写一个算法,用于计算“无序字符串”(即字符集)列表的最大后缀树/trie/数组。目标是在内存中最少地表示这些集合。已经有这样的算法了吗

例如,给定以下输入:

[{"A", "B", C"}, {"A", "C", "D"}, {"C", "A"}, {"C", "A"}, {"A"}, {"A", "D"}, {"A", "E"}]
我想输出如下内容:

                      A
                    / | \
                   C  E  D
                  / \
                 B   D
我发现了一种简单的贪婪方法,可以跨集合选择最常见的字符,通常效果很好,但如果开销合理,我想做一些优化

编辑: 我忽略了一些额外的要求,包括:

  • 表示为DAG非常重要
  • 每个集合元素都应该有一个明确的父元素

  • 此外,如果存在不相交集,则作为输出的林可能是最自然的表示形式。

    请编辑以添加您在对现已删除的答案的评论中提到的其他要求。另外,如果有一对不相交的字符集(例如,添加了
    {“F”,“g”}
    ),该怎么办?那么您有多棵树吗?我将添加编辑。我还将详细说明这种行为。