Je suis nouveau à Scala Collections et actuellement je veux séparer une liste donnée de chaînes dans un tuple de deux listes (List[String], List[String])
, qui contient la liste des chaînes de palindrome et le reste des chaînes d'entrée.La liste dans scala n'est pas mise à jour
Par exemple, si l'entrée est List("racecar", "abcd", "lilil", "effg")
sortie doit être (List("racecar", "lilil"), List("abcd", "effg"))
J'ai une solution en utilisant un filtre. Mais, actuellement, en essayant d'affiner ma solution en utilisant foldLeft. Ma nouvelle approche est la suivante:
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 }
})}
Je ne sais pas, ce que je fais mal, mais la sortie de cette solution est tuple de deux listes vides, à savoir (Liste(), Liste()).
L'aide est appréciée. Merci!
Cela semble être un cas parfait d'utilisation pour 'partition':' myList.partition (x => x.reverse == x) ' – Akavall
Merci @Akavall pour une contribution précieuse! –