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

Python - Saber si cadena es periódica

Python – Saber si cadena es periódica

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.


Estoy disponible para trabajar en tu proyecto o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.
Si el post fue de tu agrado muestra tu apoyo compartiéndolo, suscribiéndote al blog, siguiéndome o realizando una donación.

Suscribir por correo

Ingresa tu correo y recibirás mis últimas entradas sobre programación, open source, bases de datos y todo lo relacionado con informática

Únete a otros 5,208 suscriptores


parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

0 Comentarios

Deja un comentario

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada.

A %d blogueros les gusta esto: