Skip to content

Instantly share code, notes, and snippets.

@androide-osorio
Created August 24, 2014 05:46
Show Gist options
  • Save androide-osorio/c7f12a140b08b2be6785 to your computer and use it in GitHub Desktop.
Save androide-osorio/c7f12a140b08b2be6785 to your computer and use it in GitHub Desktop.
curso Backend Profesional mejorando.la: reto 1 Ruby on Rails
#funcion que detecta si una frase(String)
#es un palindromo. Devuelve un error si
#el parametro NO ES una String
def palindromo?(frase)
raise TypeError unless frase.is_a? String
frase_sin_espacios = frase.strip().gsub(/\s+/, "")
frase_sin_espacios == frase_sin_espacios.reverse
end
#-------------------------------------------------------------
#funcion que cuenta las palabras en un string
#y devuelve un hash con las frecuencias de cada palabra
#(donde la llave es la palabra y el valor es el número de ocurrencias
def cuenta_palabras(frase)
palabras = frase.scan(/\w+/)
conteo_palabras = Hash.new(0)
palabras.each {|palabra| conteo_palabras[palabra.downcase] += 1}
conteo_palabras
end
#-------------------------------------------------------------
#funcion para resolver problemas de torres de Hanoi
def hanoi(num_discos, torre_origen, torre_destino, torre_alterna)
if num_discos == 1
puts "Mover disco de torre #{torre_origen} a torre #{torre_destino}"
else
hanoi(num_discos - 1, torre_origen, torre_alterna, torre_destino)
puts "Mover disco de torre #{torre_origen} a torre #{torre_destino}"
hanoi(num_discos - 1, torre_destino, torre_alterna, torre_origen)
end
end
#-------------------------------------------------------------
#funcion que ordena un arreglo de manera ascendente o descendente
def array_sort(array, asc = true)
return array.sort{|a,b| b <=> a} unless asc
array.sort
end
#-------------------------------------------------------------
#funcion que cuenta el número de ocurrencias
#de un caracter en una string
def char_count(string, char)
string.scan(char).length
end
#-------------------------------------------------------------
#string representando un entero con signo (en base 10)
#como argumento y devuelve ese numero en un entero.
def atoi(sring)
Integer(string)
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment