2010/1/22 Matías Flores <[email protected]> > El día 22 de enero de 2010 16:59, Martin Aceto > <[email protected]> escribió: > > Hola como estan, > > > > hoy se nos planteo tener que revertir el orden de palabras, ordenandolas > > verticalmente en una matris, y nos pusimos a escribir codigo para ver si > lo > > podiamos hacer. De todo lo que escrbimos nos quedo funcionando esto que > esta > > mas abajo, y ademas nos quedo la duda si existia una forma mas facil y > > performante de hacerlo ! > > > > Este codigo se puede mejorar ? > > > > array=[] > > > > ["texto uno", "mas palabras", "muchas mas palabras"].each{|a| array << > > a.scan(/./m)} > > > > array.sort!{|i,j| j.length <=> i.length}.each{|s| s[array[0].length-1] > ||= > > nil } > > > > [ > > ["m", "u", "c", "h", "a", "s", " ", "m", "a", "s", " ", "p", "a", "l", > "a", > > "b", "r", "a", "s"], > > ["m", "a", "s", " ", "p", "a", "l", "a", "b", "r", "a", "s", nil, nil, > nil, > > nil, nil, nil, nil], > > ["t", "e", "x", "t", "o", " ", "u", "n", "o", nil, nil, nil, nil, nil, > nil, > > nil, nil, nil, nil] > > ] > > > > array.transpose > > > > [ > > ["m", "m", "t"], > > ["u", "a", "e"], > > ["c", "s", "x"], > > ["h", " ", "t"], > > ["a", "p", "o"], > > ["s", "a", " "], > > [" ", "l", "u"], > > ["m", "a", "n"], > > ["a", "b", "o"], > > ["s", "r", nil], > > [" ", "a", nil], > > ["p", "s", nil], > > ["a", nil, nil], > > ["l", nil, nil], > > ["a", nil, nil], > > ["b", nil, nil], > > ["r", nil, nil], > > ["a", nil, nil], > > ["s", nil, nil] > > ] > > No se si será mejor, más rápido o más fácil, pero tenía ganas de jugar > con esto un poco, así que ahí va: > > palabras = ["texto uno", "mas palabras", "muchas mas palabras"] > > max_length = palabras.map(&:length).max > > palabras.sort_by(&:length).reverse.map {|p| p.split(//).fill(nil, > p.length, max_length - p.length) }.transpose > > Saludos, > Matías > >
Muy bueno !!! otra opción para analizar. Gracias Matías -- Martin
_______________________________________________ Ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
