palabras anagramas

Comparte este contenido

¡Hola Girl! Para poner a trabajar nuestra mente y mejorar nuestra lógica hoy te compartimos un ejercicio de programación para detectar palabras anagramas, nosotras te compartimos una solución, pero te retamos a que lo resuelvas también por ti misma. 🤜🤛

Antes de comenzar veamos lo que es una palabra anagrama:

Una anagrama es una palabra que resulta de la transformación de otra palabra, es decir, son dos palabras conformadas por exactamente las mismas letras, pero con un orden diferente, un ejemplo es AMOR que es anagrama de ROMA, ¿Lo notas? 😉

Sin más preámbulo planteemos el ejercicio ha realizar y veamos una posible solución:

Hacer una función PHP que reciba 2 parámetros string y que regrese un boolean verdadero o falso si las palabras son anagramas o no.

Manos a la obra 🚀

<?php

function findAnagramas($word1, $word2){

    if (strlen($word1) == strlen($word2)) {

        $array_w1 = str_split($word1);
        $array_w2 = str_split($word2); 

        $success = 0;

        for ($x = 0; $x < count($array_w1); $x++) {

            if (in_array($array_w1[$x], $array_w2)) {

                $pos = array_search($array_w1[$x], $array_w2);

                unset($array_w2[$pos]);

                $success++;
            }
        }

        if ($success == count($array_w1)) {

            return true;
        } 
        else {

            return false;
        }

    } else {

        return false;
    }
    
}

?>

Lo primero que hacemos es declarar una función en PHP que reciba dos parámetros en este caso serian las dos palabras que vamos a validar.

La primera validación que hacemos es saber si las palabras tienen la misma longitud mediante la función strlen, de no ser así desde este momento regresamos false, pero si coinciden continuamos a la siguiente validación.

Por medio de la función str_split convertimos nuestros string a arrays para poder manipular cada letra de las palabras de manera independiente.

Ahora dentro de un ciclo for hacemos otra validación y mediante la función in_array iremos repasando las letras de la primera palabra, verificamos si la letra seleccionada se encuentra en el arreglo de la segunda palabra.

Enseguida obtendremos la posición que ocupa en el arreglo de la segunda palabra, esto utilizando la función array_search.

Como esta letra ya fue encontrada tenemos que descartarla del segundo arreglo, usaremos la función unset y le pasamos la posición que encontramos en el paso anterior.

Si la validación se cumple incrementamos el contador success.

Finalmente comparamos si el contador es igual a la longitud de uno de nuestros arreglos, de ser así sabremos que acertó en todas las comprobaciones dentro del ciclo for.

Dependiendo del resultado de esta última validación regresamos true o false.

¿Qué te pareció? ¿Te atreves a resolverlo ahora tú? 😉

Recuerda que este tipo de ejercicios de programación mantienen nuestra mente activa y la ejercitamos para que aprenda a resolver problemas con una mejor lógica.

Comparte este post en tu red social favorita y reta a otras chicas a que resuelvan este ejercicio con todo su ⚡POWER.

¡Hasta Pronto!

¡Haz clic para valorar este contenido!
(Votos: 3 Promedio: 5)

Comparte este contenido