Ich bin neu in Scala Collections und derzeit möchte ich eine bestimmte Liste von Zeichenfolgen in ein Tupel von zwei Listen (List[String], List[String])
, die Liste der Palindrom-Strings und Rest der Eingabe-Strings enthält.Liste in scala nicht aktualisiert werden
Zum Beispiel wenn der Eingang ist List("racecar", "abcd", "lilil", "effg")
Ausgang (List("racecar", "lilil"), List("abcd", "effg"))
sollte
ich eine Lösung Filter bekommen haben. Aber derzeit versuche ich meine Lösung mit foldLeft zu verfeinern. Mein neuer Ansatz ist wie folgt:
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 }
})}
Ich bin nicht sicher, was ich falsch mache, aber die Ausgabe für diese Lösung ist Tuple von zwei leeren Listen, das heißt (List(), List()).
Hilfe ist willkommen. Vielen Dank!
Dies scheint ein perfekter Anwendungsfall für 'partition':' myList.partition (x => x.reverse == x) ' – Akavall
Dank @Akavall für wertvolle Input! –