Sha256: 9046fa19e6b61f1cee3594429aa811e0990d92e87c5e911ddd4069c789cad4e8

Contents?: true

Size: 617 Bytes

Versions: 142

Compression:

Stored size: 617 Bytes

Contents

case class PalindromeProducts(minFactor: Int, maxFactor: Int) {

  lazy val (smallest: Option[(Int, Set[(Int, Int)])],
            largest: Option[(Int, Set[(Int, Int)])]) = {
    val palindromes = for (a <- Range(minFactor, maxFactor + 1);
                           b <- Range(a, maxFactor + 1) if isPalindrome(a * b)) yield (a * b, (a, b))
    val mapped = palindromes.groupBy(_._1).map{case(k, v) => (k, v.map(_._2).toSet)}
    if (mapped.isEmpty)
      (None, None)
    else
      (Some(mapped.minBy(_._1)), Some(mapped.maxBy(_._1)))
  }

  private def isPalindrome(i: Int) = i.toString == i.toString.reverse
}

Version data entries

142 entries across 142 versions & 1 rubygems

Version Path
trackler-2.2.1.98 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.97 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.96 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.95 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.94 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.93 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.92 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.91 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.90 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.89 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.88 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.87 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.86 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.85 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.84 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.83 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.82 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.81 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.80 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.79 tracks/scala/exercises/palindrome-products/example.scala