Volver a los desafíos
Fácil 0 resueltos 0% de aceptación

Cadena Palíndroma

Verifica si un texto se lee igual de izquierda a derecha y de derecha a izquierda.

Lo que aprenderás

  • Comparar caracteres desde ambos extremos
  • Parar en cuanto aparece una diferencia
  • Manejar cadenas vacías y de un carácter

Problema

Ver original (inglés)

Decide si text es un palíndromo, considerando solo letras y dígitos e ignorando mayúsculas y minúsculas.

Implementa is_palindrome(text).

Entrada

text: El texto a verificar (caracteres ASCII).

Salida

Devuelve true si es un palíndromo, de lo contrario false.

Restricciones

0 ≤ longitud ≤ 10,000

Ejemplos

Ejemplo 1
Entrada:
text = "Racecar"

Salida esperada:
expected = True
Entrada:
std::string text = "Racecar";

Salida esperada:
bool expected = true;
Entrada:
string text = "Racecar";

Salida esperada:
bool expected = true;

Explicación

En minúsculas, "racecar" se lee igual en ambos sentidos.

Ejemplo 2
Entrada:
text = "hello"

Salida esperada:
expected = False
Entrada:
std::string text = "hello";

Salida esperada:
bool expected = false;
Entrada:
string text = "hello";

Salida esperada:
bool expected = false;

Explicación

"hello" al revés es "olleh", que es diferente.

Cómo abordarlo

Inténtalo primero por tu cuenta y luego abre las pistas una a una.

Pista 1

Ignora todo lo que no sea letra o dígito antes de comparar.

Pista 2

Avanza desde ambos extremos hacia el centro, comparando caracteres sin distinguir mayúsculas.

Pista 3

Salta con cuidado la puntuación y los espacios para que no rompan palíndromos válidos.

Complejidad esperada

tiempo O(n), espacio extra O(1)

Referencias

Este reto está adaptado para CodeUtility. Sigue el enunciado y las restricciones indicadas arriba.

Aprende de otros

Soluciones de la comunidad

Aún no hay soluciones publicadas. Resuelve este reto para compartir la primera.