> > 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
