gpt4 book ai didi

scala - 在 Scala 中合并包含公共(public)元素的 Sets

转载 作者:行者123 更新时间:2023-12-04 02:15:07 25 4
gpt4 key购买 nike

我想在 Scala 中实现一个函数,给定一组 Ints 将合并包含一个或多个公共(public)元素的任何包含 Set。

例如,给定:

def mergeSets(sets: Set[Set[Int]]): Set[Set[Int]] = ???

val sets = Set(Set(1,2), Set(2,3), Set(3,7), Set(8,10))
val mergedSets = mergeSets(sets)

合并集将包含 Set(Set(1,2,3,7), Set(8,10))

如果可能的话,在 Scala 中执行此操作的方法是什么?

最佳答案

最有效的方法是使用可变结构,但你要求一种功能性的方式,所以这里是:

sets.foldLeft(Set.empty[Set[Int]])((cum, cur) => {
val (hasCommon, rest) = cum.partition(_ & cur nonEmpty)
rest + (cur ++ hasCommon.flatten)
})

(未测试,用手机写的)

关于scala - 在 Scala 中合并包含公共(public)元素的 Sets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25616010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com