fork download
  1. object Main extends App {
  2. def distinctExcept(string: String, elements: Int*) = {
  3. val pairsToRemove = (0 to string.length)
  4. .zip(for (k <- 0 until string.length - 1 if string(k) == string(k + 1)) yield k -> (k + 1))
  5. .collect { case (x, (a, b)) if !elements.contains(x) => (a, b) }
  6. .flatMap(x => x._1 :: x._2 :: Nil)
  7. (for (k <- 0 until string.length - 1 if !pairsToRemove.contains(k)) yield string(k)).mkString
  8. }
  9.  
  10. println(distinctExcept("aagvvbbfagacc", 0,2))
  11. }
Success #stdin #stdout 0.4s 322240KB
stdin
Standard input is empty
stdout
aagbbfaga