Siguiendo con los ejercicios de Python vamos a ver si una cadena se puede rearmar tomando un subgrupo de caracteres de la propia cadena y replicándolos para formar la cadena.
Básicamente veremos si una cadena puede ser periódica para ver si un grupo de caracteres puede rearmar a la propia cadena.
Por ejemplo, la cadena EAEEAE
es periódica porque con el subgrupo EAE
se puede rearmar. Igualmente la cadena EEEE
es periódica porque con el subgrupo E
se puede rearmar.
Veamos cómo hacer esto con Python.
Explicación del algoritmo

Vamos a realizar todas las combinaciones de la cadena. Por ejemplo para la cadena EAEAEA sus posibles combinaciones son:
- E
- EA
- EAE
- EAEA
- EAEAE
- EAEAEA
En cada paso comprobamos si al multiplicar esa combinación nos da la cadena original y si la combinación no mide lo mismo que la cadena original.
Si ambas condiciones se cumplen entonces diremos que la cadena es periódica. Por otro lado, si acabamos de combinar y no se cumplió en ninguna combinación entonces la cadena no es periódica.
Cadena periódica con Python
Veamos el código de la función escrita en Python. El método te va a devolver un booleano indicando si la cadena es o no periódica, o sea, si se puede rearmar tomando un subgrupo de la misma:
Comenzamos calculando la longitud de la secuencia, luego hacemos un ciclo for desde el 0 hasta la longitud de la cadena menos 1.
Calculamos la combinación en la línea 4 y la imprimimos para términos de depuración.
Luego obtenemos la longitud de la combinación y estimamos cuántas veces debemos multiplicarla para que sea de la misma longitud que la cadena original.
Multiplicamos la combinación en la línea 10 y comprobamos si la combinación multiplicada es igual a la cadena original pero además también revisamos si la longitud de la combinación no es igual a la de la cadena original.
Poniendo todo junto
A continuación dejo el ejemplo de código junto con unos ejemplos de su uso:
La salida ya la dejé anteriormente en una imagen.
Por aquí te dejo otros ejercicios de Python si quieres seguir aprendiendo sobre este lenguaje.