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

Responder a