String 是否可以为无序集而不是字符串构建后缀trie?
我正在尝试编写一个算法,用于计算“无序字符串”(即字符集)列表的最大后缀树/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
[{"A", "B", C"}, {"A", "C", "D"}, {"C", "A"}, {"C", "A"}, {"A"}, {"A", "D"}, {"A", "E"}]
我想输出如下内容:
A
/ | \
C E D
/ \
B D
我发现了一种简单的贪婪方法,可以跨集合选择最常见的字符,通常效果很好,但如果开销合理,我想做一些优化
编辑:
我忽略了一些额外的要求,包括:
此外,如果存在不相交集,则作为输出的林可能是最自然的表示形式。请编辑以添加您在对现已删除的答案的评论中提到的其他要求。另外,如果有一对不相交的字符集(例如,添加了
{“F”,“g”}
),该怎么办?那么您有多棵树吗?我将添加编辑。我还将详细说明这种行为。