gpt4 book ai didi

scala - Scala 中的列表未更新

转载 作者:行者123 更新时间:2023-12-04 23:14:56 26 4
gpt4 key购买 nike

我是 Scala 集合的新手,目前我想将给定的字符串列表分成两个列表的元组 (List[String], List[String]) ,其中包含回文字符串列表和其余输入字符串。

例如,
如果输入是 List("racecar", "abcd", "lilil", "effg")输出应该是 (List("racecar", "lilil"), List("abcd", "effg"))
我有一个使用过滤器的解决方案。但是,目前,正在尝试使用 foldLeft 改进我的解决方案。我的新方法如下:

def stringTuples2(strings: List[String]): (List[String], List[String]) = {
strings.foldLeft((List[String](), List[String]()))((b, a) => {
if (a.equals(a.reverse)) { b._1 :+ a; b }
else { b._2 :+ a; b }
})}

我不确定,我做错了什么,但是这个解决方案的输出是两个空列表的元组,即 (List(), List())。

帮助表示赞赏。谢谢!

最佳答案

您试图修改 b创建一个新的 List ,你再扔新的List离开并返回 b ,不变。取出;b部分并返回更新的元组:(b._1 :+ a, b._2)(b._1, b._2 :+ a)
顺便说一句,这是解决方案的另一种方法。

List("racecar", "abcd", "lilil", "effg").partition(s => s == s.reverse)

关于scala - Scala 中的列表未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44816769/

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