【发布时间】:2019-02-13 15:06:23
【问题描述】:
是否有任何有效的方法来合并具有交集的集合。例如:
l = [{1, 3}, {2, 3}, {4, 5}, {6, 5}, {7, 5}, {8, 9}]
预期结果是:
r = [{1, 2, 3}, {4, 5, 6, 7}, {8, 9}]
应该合并所有有交集(公共组件)的集合。例如:
{1, 3} & {2, 3}
# {3}
所以这两个集合应该合并:
{1, 3} | {2, 3}
# {1, 2, 3}
很遗憾,我没有任何可行的解决方案。
更新:结果中集合的顺序并不重要。
【问题讨论】:
-
请说明在什么条件下合并?
-
看起来你想要一个connected components 算法。
-
为避免投机性的答案,请解释您究竟想要达到什么目标,并说明您已经尝试过什么以及问题所在。
-
[{1,2}, {2,3}, {3,4}]这样的输入的期望输出是什么?[{1,2,3,4}]?或者[{1,2,3}, {3,4}]? -
他们应该有交集
{1, 3} & {2, 3}->{3}or{4, 5}, {6, 5}, {7, 5}->{5}.
标签: python set graph-theory