¿Eliminar elementos idénticos adyacentes en una matriz de rubíes?
Ruby 1.8.6
Tengo una matriz que contiene valores numéricos. Quiero reducirlo de modo que las secuencias del mismo valor se reduzcan a una sola instancia de ese valor.
Entonces yo quiero
a = [1, 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 2, 3, 3, 3]
para reducir a
[1, 2, 3, 2, 3]
Como puedes ver,Array#uniq
No funcionará en este caso.
Tengo lo siguiente, que funciona:
(a.size - 1).downto(1) { |i| a[i] = nil if a[i - 1] == a[i] }
¿Alguien puede pensar en algo menos feo?