Comprobaciones correctas de palíndromos
Compare desde ambos extremos de forma eficiente
Comprobaciones correctas de palíndromos es una lección gratuita de Coding Interview Prep en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Coding Interview Prep, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Coding Interview Prep incluye 4 lecciones en total.
Qué es un palíndromo
Un palíndromo se lee igual de izquierda a derecha que de derecha a izquierda, como «reconocer» o «radar». Comprobar si una cadena lo es es un ejercicio clásico de introducción. 🔁
El truco del slicing
Python puede invertir una cadena con el slicing s[::-1]. Compárelo con la cadena original y tendrá una comprobación en una sola línea.
s = 'level'
print(s == s[::-1]) # TrueEl slicing consume memoria adicional
El enfoque con slicing es breve, pero crea una copia completa invertida. En cadenas enormes, esa memoria adicional puede ser importante cuando los límites son estrictos.
La técnica de los dos punteros
Coloque un puntero al principio y otro al final. Compárelos y avance ambos hacia el centro. Esto usa O(1) de espacio adicional.
i, j = 0, len(s) - 1
while i < j:
if s[i] != s[j]:
break
i += 1; j -= 1Detenerse en el centro
Los punteros solo necesitan encontrarse a mitad de camino. Cuando i no es menor que j, todos los pares han coincidido y la cadena es un palíndromo.
Una discrepancia permite detenerse antes
El bucle de dos punteros puede devolver False en cuanto un par sea diferente. Rara vez tendrá que recorrer toda la cadena, lo que ofrece una buena mejora de velocidad.
def is_pal(s):
i, j = 0, len(s) - 1
while i < j:
if s[i] != s[j]: return False
i += 1; j -= 1
return TrueAmbos son O(n)
En ambos casos, cada carácter se examina como máximo una vez, por lo que los dos métodos se ejecutan en tiempo lineal. Solo se diferencian en la memoria adicional que utilizan.
Normalizar primero
Muchos problemas ignoran las mayúsculas, minúsculas y los espacios. Limpie la cadena primero convirtiéndola a minúsculas y conservando solo letras y dígitos.
raw = 'A man, a plan'
clean = ''.join(c.lower() for c in raw if c.isalnum())Después, comprobar la cadena limpia
Una vez normalizada, ejecute la comprobación habitual de palíndromo sobre la versión limpia. Este es el patrón estándar para los palíndromos formados por frases.
print(clean == clean[::-1])Los punteros omiten las letras no alfanuméricas
En lugar de limpiar primero la cadena, dos punteros pueden omitir directamente cualquier carácter no alfanumérico. Así evita crear una segunda cadena.
Palíndromos en subcadenas
Los problemas más difíciles preguntan por subcadenas palindrómicas. La idea central es expandirse desde el centro: crecer hacia fuera desde cada posición mientras los extremos coincidan.
Comprobación rápida
Una pregunta sobre la comprobación de palíndromos.
Repaso
Ahora puede comprobar palíndromos con un slicing rápido o con dos punteros que usan poca memoria, y normalizar entradas desordenadas antes de comprobarlas. 🎉
Preguntas frecuentes
¿La lección «Comprobaciones correctas de palíndromos» es gratis?
Sí — el texto completo de «Comprobaciones correctas de palíndromos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Coding Interview Prep, actualiza a CoddyKit PRO. El curso de Coding Interview Prep incluye 4 lecciones en total.
¿Qué aprenderé en «Comprobaciones correctas de palíndromos»?
Compare desde ambos extremos de forma eficiente Practicas Coding Interview Prep con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Coding Interview Prep?
No se requiere experiencia previa. Coding Interview Prep en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Comprobaciones correctas de palíndromos»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Coding Interview Prep?
Sí. Cada lección de Coding Interview Prep incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Trucos con caracteres, ord y chr
- Cuente letras con una tabla de frecuencias
- Comprobaciones correctas de palíndromos
- Separe, elimine y vuelva a unir palabras