Skip to content

Instantly share code, notes, and snippets.

@parzibyte
Created January 14, 2019 05:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save parzibyte/3775b50ac26f9935ad4001b867dc785e to your computer and use it in GitHub Desktop.
Save parzibyte/3775b50ac26f9935ad4001b867dc785e to your computer and use it in GitHub Desktop.
Anagrama en Ruby created by parzibyte - https://repl.it/@parzibyte/Anagrama-en-Ruby
=begin
Función que comprueba si una palabra es anagrama de otra,
sin importar espacios, mayúsculas, minúsculas puntos ni comas
@author parzibyte
=end
def anagrama(palabra, palabra2)
# Eliminar espacios, comas y puntos. Convertir a minúsculas
# Luego, ordenar los caracteres y unirlos de nuevo a una cadena
# Finalmente se comparan y se regresa el resultado de la comparación (true o false)
palabra.delete(" " "," ".").downcase.chars.sort.join ===
palabra2.delete(" " "," ".").downcase.chars.sort.join
end
#Probar función... Algunos ejemplos fueron obtenidos de https://www.ejemplos.co/50-ejemplos-de-anagramas/
palabras = [
["Quieren", "Enrique"],
["Poder", "Pedro"],
["Luis", "Luis"],
["Otra", "Cosa"],
["Enfriamiento", "Refinamiento"],
["Tom Marvolo Riddle", "I Am Lord Voldemort"],
["Esto no", "Es un anagrama"],
["123", "321"],
["Visita", "parzibyte.me"]
]
palabras.each{|grupo|
puts "¿'#{grupo[0]}' es anagrama de '#{grupo[1]}'? #{anagrama(grupo[0], grupo[1])}"
}
# O hacer que el usuario pruebe por sí mismo
puts "Escribe una palabra"
palabra = gets.chomp
puts "Escribe otra palabra y te diré si es anagrama de la anterior"
palabra2 = gets.chomp
if anagrama(palabra, palabra2)
puts "Sí es anagrama"
else
puts "No es anagrama"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment