找到重复的scala时拆分列表
发布时间:2020-12-16 18:08:55 所属栏目:安全 来源:网络整理
导读:我在 Scala中有一个元素列表,我正在寻找一种在找到重复项时拆分列表的方法. 例如:List(x,y,z,e,r,g,a)将被转换为List(List(x,r),List(y,a)) 或列表(x,x,z)到列表(x,z),列表(x,z) 和列表(x,x)到列表(x,列表(y,x) 是否有一种比分别迭代和检查每个元素更有效的
我在
Scala中有一个元素列表,我正在寻找一种在找到重复项时拆分列表的方法.
例如:List(x,y,z,e,r,g,a)将被转换为List(List(x,r),List(y,a)) 是否有一种比分别迭代和检查每个元素更有效的方法? 解决方法
使用O(n)附加内存快速而脏的O(n):
import scala.collection.mutable.HashSet import scala.collection.mutable.ListBuffer val list = List("x","y","z","e","r","g","a","x","m","z") var result = new ListBuffer[ListBuffer[String]]() var partition = new ListBuffer[String]() list.foreach { i => if (partition.contains(i)) { result += partition partition = new ListBuffer[String]() } partition += i } if (partition.nonEmpty) { result += partition } result
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |