【发布时间】:2011-12-31 16:33:00
【问题描述】:
我有一组字符串。其中,2个或更多的组可能代表相同的事物。这些组应该以给定组的任何成员的方式存储,您可以高效地获取组的其他成员。
所以给定这个初始集合:["a","b1","b2","c1","c2","c3"],结果结构应该类似于["a",["b1","b2"],["c1","c2","c3"]],Fetch("b") 应该返回["b1","b2"]。
是否有用于此目的的特定数据结构和/或算法?
编辑:“b1”和“b2”不是实际的字符串,它们表示 2 属于同一组。否则,Trie 将是完美的选择。
【问题讨论】:
-
这是一个特定的编程语言编程问题吗?如果不是,这可能属于计算机科学 stackexchange 而不是这里。如果您确实提到了特定的编程问题和语言,请相应地编辑
-
听起来像disjoint-set forests 但倒过来了...
-
你能说出你的确切问题吗,目前不清楚你的组是什么?
-
@SaeedAmiri 组是预定义的。因此,例如已知字符串“b1”和“b2”在构建结构时属于同一组。
-
告诉我们两个字符串属于同一个组的标准是什么?如果就像查看字符串是否具有某个前缀/后缀/子字符串/结构一样简单,您可以简单地将它们组合在一起,通过列表一次遍历。如果它更像是字符串对之间的一组关系,则需要将其建模为图形并运行 bfs/dfs 或使用不相交的集合对它们进行分组。
标签: java algorithm data-structures graph-algorithm