Created
August 24, 2014 05:46
-
-
Save androide-osorio/c7f12a140b08b2be6785 to your computer and use it in GitHub Desktop.
curso Backend Profesional mejorando.la: reto 1 Ruby on Rails
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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