【发布时间】:2013-05-30 22:18:36
【问题描述】:
给定一个 Map[String, Set[String]] 在 Scala 中,确定所有不同键对的集合(其中对应的集合具有非空交集)的集合是一种优雅而有效的方法吗?
例如将地图固定为
val input = Map (
"a" -> Set("x", "z"),
"b" -> Set("f")
"c" -> Set("f", "z", "44")
"d" -> Set("99")
)
那么需要的输出是
Set(
("a", "c"),
("b", "c")
)
在这种情况下,高效意味着比 O(n^2) 更好,其中 n 是作为输入给出的集合族中元素数量的总和。
【问题讨论】:
-
@Calpis 你能详细说明一下你的建议吗?
标签: algorithm scala set-intersection