给定一个 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 是作为输入给出的集合族中元素数量的总和。