El documento describe lo que son los palíndromos, que son palabras, números o frases que se leen igual hacia adelante que hacia atrás, e incluye ejemplos como "Anita lava la tina". Luego presenta un procedimiento en pseudocódigo para detectar si una cadena dada es un palíndromo mediante la comparación de sus caracteres en los extremos. Finalmente, aplica este procedimiento a instancias como "Somos" y "Amor a Roma".
2. ¿Qué son los palíndromos?
Es una palabra, número o frase que se lee
igual hacia adelante que hacia atrás.
Es dónde la última letra es la misma que la
primera, la penultima que la segunda, etc.
Ejemplos:
Anita lava la tina reconocer oso
Seres 12321 Noel leon
3. procedimiento Palindromo(cadena)
//cadena = (cadena1, cadena2, cadenan) contiene n caracteres
es <- 1
P
cadena2 <- ""
contador <- 0
s
para i<-0 hasta n hacer
si cadena[i] es mayuscula entonces
e
cadena[i] <- cadena[i] en minuscula u
fin si
si cadena[i] no es " " entonces d
cadena2 <- cadena2 + cadena[i]
contador <- contador + 1 o
fin si
fin para c
para i<-0 hasta contador/2 hacer ó
si cadena2[i] no es cadena2[cont-i-1] entonces
es <- 0 d
fin si
fin para i
si es = 1 entonces
g
escribir Es palindromo
si no
o
escribir No es palindromo
fin si
6. Código en Python
#!/usr/bin/python
cadena = raw_input("Introduce la cadenan")
print(len(cadena))
cont = 0
cadena2 = "";
es = 1
For --> lectura de c/caracter de la
for i in cadena:
cadena.
if i.isupper():
i = i.lower()
i.isupper()-->si i es mayúscula
if i!= " ": i.lower()-->convertir i en minúscula
cadena2 = cadena2 + i If i!= “ “-->si I es un espacio, se pasa
cont = cont + 1 al siguiente caracter.
for i in range(cont/2): For--> para comparar cadenas
if cadena2[i]!= cadena2[cont-i-1]: Cont/2--> dividir cadena
es = 0 If cadena2[i]!= cadena2[cont-i-1]
break comparación de cadenas
if(es):
print "es palindromo"
else:
print "no es palindromo"
7. Instancia
0 1 2 3 4 5 6 7 8
A m o r a R o m a
for i in cadena: i=2-->o i=6-->o
if i.isupper(): o!=” “ (espacio) o!=” “ (espacio)
i = i.lower() cadena2 = am + o = amo cadena2 = amorar + o
if i!= " ": cont = 2 + 1 = 3 cont = 6 + 1 = 7
cadena2 = cadena2 + i
cont = cont + 1 i=3-->r i=7-->m
r!=” “ (espacio) m!=” “ (espacio)
cadena2 = amo + r = amor cadena2 = amoraro +m
cont = 3 + 1 = 4 cont = 7 + 1 = 8
i=0 -->A
A-->a
i=4-->a i=8-->a
a!=” ” (espacio)
a!=” “ (espacio) a!=” “ (espacio)
cadena2 = a
cadena2 = amor + a cadena2 = amorarom + a
cont = 0 + 1 = 1
cont = 4 + 1 = 5 cont = 8 + 1 = 9
i=1-->m
i=5-->R
m!=” “ (espacio)
R-->r
cadena2 = a + m = am
r!=” ” (espacio)
cont = 1 + 1 = 2
cadena2 = amora + r
cont = 5 + 1 = 6
8. 0 1 2 3 4 5 6 7 8
A m o r a R o m a
for i in range(cont/2):
if cadena2[i]!= cadena2[cont-i-1]: Cont/2 = = 9/2 = 4.5 = 4
es = 0
break
cadena2[0]!= cadena2[9-0-1]
cadena2[0]!= cadena2[8] a-->a
cadena2[1]!= cadena2[9-1-1]
cadena2[1]!= cadena2[7] m-->m
cadena2[2]!= cadena2[9-2-1]
cadena2[2]!= cadena2[6] o-->o
Amor a Roma Es palindromo
cadena2[3]!= cadena2[9-3-1]
cadena2[3]!= cadena2[5] r-->r