Question

Je dois écrire un extrait de code qui comparerait plusieurs tableaux et de produire l'ensemble qui correspondent aux données contenues dans ces tableaux, produire l'ensemble de données que dans le tableau A, mais pas dans le tableau B, C, D, dans le tableau B, mais pas A, C, D, être capable de gérer un certain nombre de matrices (par exemple en boucle dynamique). Le code doit utiliser des fonctions anonymes à Scala (à savoir pas comme un réseau régulier en boucle comme en Java).

Était-ce utile?

La solution

Sons comme les devoirs à moi. De loin la meilleure façon de faire est plus facile de jeter le contenu du tableau A dans un Set et utiliser l'opération de suppression. Ce serait O (n) n = \ somme {| A |, | B |, | C |, ...}. La solution suivante fonctionne pour Iterable arbitraire, non seulement Array:

def compareArrays[A](arrs: List[Iterable[A]]) = arrs match {
  case a :: tail => {
    val set = a.foldLeft(Set[A]()) { _ + _ }
    tail.foldLeft(set) { _ -- _ }
  }

  case Nil => Nil
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top