[PHP] Palíndromo

Hola Mundo, espero estén teniendo un buen día tomando unos deliciosos bits de café, hoy les presentaré un código curioso que me hizo conocer algunas nuevas funciones que ya están integradas en php.

El problema en cuestión es un código que determine si una palabra o un número es un palíndromo.

Primero entremos en contexto, un palíndromo es una palabra o frase que se lee igual de izquierda a derecha que de derecha a izquierda. Pero, no solamente las palabras son palíndromos, incluso los números pueden llegar a serlo, sin embargo, no se les denomina palíndromos como tal ya que estos poseen su denominación propia la cual es capicúa.

Revisemos unos ejemplos:

Palabra: Somos  →  Palíndromo: Somos
Número: 2442  → Capicúa: 2442

Como podemos observar tanto la palabra como el número se pueden leer de la misma forma sea al derecho o al revés.

El código en PHP correspondiente al planteamiento es:

$cadena='somos';
$cadenainvertida = strrev($cadena);

echo "Cálculo de palíndromos\n";

if (strcmp($cadena, $cadenainvertida)==0){
    echo "La cadena ". $cadena . " es un palíndromo\n";
}
else{
    echo "La cadena ". $cadena ." no es un palíndromo";
}

  1. Como podemos observar declaramos una variable donde estará nuestra palabra o número a evaluar.
  2. Declaramos una cadena que contendrá la palabra o número pero con la diferencia que utilizaremos la función strrev() la cual nos permite invertir un string. 
  3. Utilizaremos la función strcmp para comparar los strings de manera segura a nivel binar. (Tengamos en cuenta que esta comparación considera mayúsculas y minúsculas, por lo que no será lo mismo escribir “somos” que “Somos”.). 
  4. Si el valor devuelto por la condicional es igual a 0 significa que tanto el string como su inversa coinciden, de lo contrario no serán palíndromos. 

Te invito a que me compartas una solución alterna a la que presenté.

Saludos!

Comentarios

Entradas más populares de este blog

[PHP] Números Primos

[PHP] Serie de Fibonacci