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.139 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.138 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.137 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.136 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.135 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.134 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.133 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.132 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.131 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.130 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.129 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.128 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.127 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.126 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.125 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.124 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.123 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.122 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.121 tracks/scala/exercises/palindrome-products/example.scala
trackler-2.2.1.120 tracks/scala/exercises/palindrome-products/example.scala