我在 Scala 中有一个列表,我试图根据涉及列表多个元素的谓词将其划分为多个列表。例如,如果我有
a: List[String] = List("a", "ab", "b", "abc", "c")
我想得到 b: List[List[String]]
这是 List[String]
的列表这样内部长度的总和 List[String] == 3
.即List(List("a", "b", "c"), List("abc"), List("ab", "a"), ...)
[编辑] 需要为长度为 50 或更短的列表花费合理的时间。
最佳答案
对于任意谓词 p
,不可能构建比 O(2^n * O(p))
更便宜的高效算法。这是因为必须评估每个子集。您永远不会实现适用于 n == 50
的东西。
关于list - Scala 划分为两个以上的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26675219/