fork download
  1. def _split(s)
  2. s.chars.inject([]) {|a, c| a.empty? || a.last.first != c ? a << [c] : a.last << c; a}
  3. end
  4. def f9009(s)
  5. _split(s).map {|a| a.size < 3 ? a.size.to_s + a.first : a.first}.join
  6. end
  7. p (0..10).inject(['0']) {|acc, _| acc << f9009(acc.last)}
  8.  
Success #stdin #stdout 0.02s 9720KB
stdin
Standard input is empty
stdout
["0", "10", "1110", "110", "2110", "122110", "11222110", "2122110", "1211222110", "11122122110", "12211222110", "11222122110"]