Programa palíndromo en Python
¿Qué es el programa Palindrome en Python?
Un palíndromo se puede definir como una cadena o un número que muestra el mismo valor cuando se invierte su posición. En un sentido más simple, permanece inalterado cuando se invierte.
Example: deed, 101
Cuando se comparan la palabra inversa y la palabra real (un número o una cadena), producen el mismo resultado.
Tipos de palíndromo
En lenguaje Python, Palindrome es de tres tipos, como se enumera a continuación:
- Palíndrome de varias palabras: Esta es una combinación de varias palabras donde el valor de las palabras original y revertida es el mismo.
- Palíndromo de una sola palabra: Esta es una sola palabra donde el valor de las palabras original y invertida es el mismo.
- Número palíndromo: Este es un número donde los valores de los números original e invertido son los mismos. La entrada dada sigue siendo la misma ya sea desde el frente o desde el reverso.
Algoritmo para un número palíndromo en Python
Se puede aplicar el siguiente algoritmo para comprobar el número de palíndromo:
Paso 1) Realice la declaración de variable como 'I' y lea la variable.
Paso 2) Asigne 'I' a la variable temporal j. yo=j
Paso 3) Realice el bucle con las instrucciones que se muestran a continuación: –
- M=Yo % 10
- L=L x 10 + M
- Yo=Yo/10
Paso 4) Comparar la variable temporal con l. L==J.
Paso 5) Imprima el número para que sea un palíndromo si se cumple la condición.
Paso 6) Si la condición no se cumple, imprima el número como no palíndromo.
Paso 7) Finalizar
El algoritmo anterior se aplica a los números palíndromos en Python.
Método 1: número palíndromo en Python usando corte hacia atrás
El corte hacia atrás en Python generalmente implica el uso de declaraciones de subconjunto del programa original. Las declaraciones de subconjunto también pueden utilizar bucles. El programa palíndromo de Python se puede dividir hacia atrás.
El siguiente programa de Python utiliza un bucle inverso para determinar si una cadena es un palíndromo.
Programa de cadena Palindrome en código Python:
a='deed'
lena=len(a)
b=[]
for i in range(lena - 1, -1, -1):
b.append(a[i])
rev = "".join(b)
print(a + " is: ", end="")
if a == rev:
print("Palindrome")
else:
print("Not Palindrome")
Salida:
deed is: Palindrome
Explicación del código:
- El código Python intenta agregar la cadena vacía b en orden inverso utilizando la longitud de la cadena principal y la función de rango de Python.
- Luego, la cadena b se une con la cadena vacía rev usando el separador de cadena “.
Método 2: programa Palindrome en Python usando Flag
Las variables de bandera se pueden definir en Python para identificar palíndromos. El indicador se inicializa en 0. El siguiente programa ilustra el uso del parámetro de indicador:
Código Python para el programa Palindrome:
Pld = "deed"
m = -1
flag = 0
for char in Pld:
if char != Pld[m]:
flag = 1
break
m = m - 1
print(Pld + " is: ", end="")
if flag:
print("Not Palindrome")
else:
print("Palindrome")
print(flag)
Salida:
deed is: Palindrome
0
Explicación del código:
- El carácter en Python comienza con un índice 0.
- Dado que m se inicializa como -1, la cadena se lee desde el reverso como un índice negativo.
- El bucle for con la instrucción if comprueba si cada carácter que comienza con el índice 0 presente en la cadena coincide con el índice inverso de la cadena.
- Sin embargo, si no coincide, el programa inicializa el indicador como 1; de lo contrario, lo inicializaría como 0.
Método 3: verificar Palindrome en Python invirtiendo el carácter
El método char se utiliza para invertir una cadena en este programa palíndromo en Python. La cadena original se compara con la cadena inversa para determinar si la cadena es palíndromo o no.
Código del programa Python Palindrome:
Base = "123"
reverse = ""
for char in Base:
reverse = char + reverse
print("Palindrome") if Base == reverse else print("Not Palindrome")
print("Original string is: " + str(Base))
print("reverse string is: " + str(reverse))
Base = "101"
reverse = ""
for char in Base:
reverse = char + reverse
print("Palindrome") if Base == reverse else print("Not Palindrome")
print("Original string is: " + str(Base))
print("reverse string is: " + str(reverse))
Base = "deed"
reverse = ""
for char in Base:
reverse = char + reverse
print("Palindrome") if Base == reverse else print("Not Palindrome")
print("Original string is: " + str(Base))
print("reverse string is: " + str(reverse))
Salida:
Not Palindrome
The original string is: 123
The reverse string is: 321
Palindrome
The original string is: 101
The reverse string is: 101
Palindrome
The original string is: the deed
The reverse string is: the deed
Explicación del código:
- La función str de Python ayuda a convertir el formato de valor numérico al formato de cadena. El programa primero comprueba si el valor 123 es un palíndromo o no.
- Luego verifica el valor de 101 y el valor de la cadena de la escritura.
- El código comprueba que el valor sea un palíndromo tanto para el formato numérico como para el de cadena.
Método 4: Cómo verificar Palindrome en Python usando la coincidencia de caracteres
En este método palíndromo, el programa verifica si cada carácter de la cadena coincide con la cadena inversa utilizando el bucle for, la función de rango y la función Len.
Código Python:
def PalindromeComparator(original):
for i in range(0, len(original)):
if original[i] != original[len(original) - i - 1]:
return False
return True
Base = "deed"
print("Palindrome") if PalindromeComparator(Base) else print("Not Palindrome")
Salida:
Not Palindrome
Explicación del código:
- Una función definida por el usuario etiquetada como Palindrome Comparator comprueba si el valor es una cadena o no.
- El programa compara la cadena original y el reverso de la cadena original utilizando el criterio original[i]!= original[len(original) – i – 1].
- El programa anterior utiliza la técnica de longitud para determinar la longitud de la cuerda.
Método 5: Palíndromo en Python usando recursividad
En Python, la recursividad significa que la función se llama a sí misma repetidamente y según un conjunto específico de criterios. De esta manera, el problema se puede dividir en otros más pequeños utilizando la misma estructura funcional. Al utilizar la lógica de programación recursiva, también se pueden verificar cadenas palíndromas
Código Python:
def palcomprec(number, oppo):
if number == 0:
return oppo
remainder = int(number % 10)
oppo = (oppo * 10) + remainder
return palcomprec(int(number / 10), oppo)
Base = 12321
reverse = 0
reverse = palcomprec(Base, reverse)
print(str(Base) + " is: ", end="")
print("Palindrome") if reverse == Base else print("Not Palindrome")
Salida:
12321 is: Palindrome
Explicación del código:
- El programa utiliza una función definida por el usuario que se llama a sí misma de forma recursiva.
- El número original se descompone y su valor residual se suma al valor opuesto.
- El valor opuesto se multiplica primero por 10 antes de sumarlo con el valor restante.
Método 6: Cómo utilizar el bucle While para comprobar el palíndromo
Un bucle while realiza la ejecución de código de forma iterativa hasta que la condición aplicada sea verdadera.
- El método iterativo se puede utilizar para comprobar si el valor entero es palíndromo.
- El programa Python utiliza números temporales y operadores de módulo.
Código Python:
original = 101
temporary = original
reverse = 0
while temporary > 0:
remainder = temporary % 10
reverse = (reverse * 10) + remainder
temporary = temporary // 10
if original == reverse:
print('Palindrome')
else:
print("Not Palindrome")
Salida:
Palindrome
Explicación del código:
- El programa utiliza un bucle while que comprueba si el número temporal es menor que cero.
- El operador de módulo calcula el resto del número original.
- El número original se divide por 10.
- El parámetro inverso se calcula multiplicando por 10.
- El número resultante se suma al residual.
- El programa anterior verifica el número original y el número inverso para clasificarlo como palíndromo o no.
Conclusión
- El palíndromo es un valor cuando se compara desde la dirección hacia atrás, y la dirección hacia adelante resulta ser la misma. Se utiliza en varios acertijos matemáticos.
- Se pueden adoptar varias formas en Python para comparar si un valor es un palíndromo o no. Las técnicas utilizadas son: – Corte hacia atrás, Coincidencia de caracteres, Recursión, Uso de bucles, funciones rev, Len y str, funciones predefinidas, recursiones, etc.