Skip to content

Latest commit

 

History

History
73 lines (53 loc) · 1.4 KB

012-palindromo.livemd

File metadata and controls

73 lines (53 loc) · 1.4 KB

12 - Palíndromo

¿ES UN PALÍNDROMO?

Enunciado

Escribe una función que reciba un texto y retorne verdadero o falso (Boolean) según sean o no palíndromos.

  • Un Palíndromo es una palabra o expresión que es igual si se lee de izquierda a derecha que de derecha a izquierda.
  • NO se tienen en cuenta los espacios, signos de puntuación y tildes.
  • Ejemplo: Ana lleva al oso la avellana.

Solución

defmodule Palindrome do
  def is?(string) do
    new_string =
      string
      |> String.replace([" ", ",", ".", "!", "¡", "?", "¿", ":", ";"], "")
      |> String.downcase()

    new_string == String.reverse(new_string)
  end
end
{:module, Palindrome, <<70, 79, 82, 49, 0, 0, 7, ...>>, {:is?, 1}}
defmodule Solution do
  def run(string) do
    Palindrome.is?(string)
  end
end
{:module, Solution, <<70, 79, 82, 49, 0, 0, 6, ...>>, {:run, 1}}
Solution.run("oro")
true
Solution.run("Ana lleva al oso la avellana.")
true