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