Por ejemplo, las palabras "pila", quiero obtener una matriz como:¿Cuál es la mejor manera de dividir una cadena para obtener todas las subcadenas de Ruby?
['s', 'st', 'sta', ... 'stack', 't', 'ta', ... , 'c', 'ck', 'k']
Hice esto por dicho código:
def split_word(str)
result = []
chas = str.split("")
len = chas.size
(0..len-1).each do |i|
(i..len-1).each do |j|
result.push(chas[i..j].join)
end
end
result.uniq
end
¿Hay manera mejor y más limpia de hacer eso? Gracias.
¿Con o sin duplicados? –
sin duplicados, gracias! –
consejos generales: use mejor el mapa (funcional) en lugar de seguir el patrón "init empty + iterate + push + return" (imperativo) – tokland