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

Saludos.-

-- 
Martin
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a