Retour aux défis
Facile 0 résolus 0 % de réussite

Chaîne Palindrome

Vérifiez si un texte se lit de la même façon dans les deux sens.

Ce que vous allez apprendre

  • Comparer les caractères depuis les deux extrémités
  • S'arrêter dès qu'une différence apparaît
  • Gérer les chaînes vides et d'un seul caractère

Problème

Décidez si text est un palindrome, en ne considérant que les lettres et les chiffres et en ignorant la casse.

Implémentez is_palindrome(text).

Entrée

text : Le texte à vérifier (caractères ASCII).

Sortie

Retournez true si c'est un palindrome, sinon false.

Contraintes

0 ≤ longueur ≤ 10 000

Exemples

Exemple 1
Entrée :
text = "Racecar"

Sortie attendue :
expected = True
Entrée :
std::string text = "Racecar";

Sortie attendue :
bool expected = true;
Entrée :
string text = "Racecar";

Sortie attendue :
bool expected = true;

Explication

En minuscules, "racecar" se lit de la même façon dans les deux sens.

Exemple 2
Entrée :
text = "hello"

Sortie attendue :
expected = False
Entrée :
std::string text = "hello";

Sortie attendue :
bool expected = false;
Entrée :
string text = "hello";

Sortie attendue :
bool expected = false;

Explication

"hello" à l'envers donne "olleh", qui est différent.

Comment l'aborder

Essayez d'abord seul, puis ouvrez les indices un par un.

Indice 1

Ignore tout ce qui n’est ni une lettre ni un chiffre avant de comparer.

Indice 2

Avance vers le centre des deux côtés en comparant des caractères sans tenir compte de la casse.

Indice 3

Ignore soigneusement la ponctuation et les espaces pour ne pas casser les palindromes valides.

Complexité attendue

temps O(n), espace supplémentaire O(1)

Références

Ce défi a été adapté pour CodeUtility. Suivez l'énoncé et les contraintes ci-dessus.

Apprenez des autres

Solutions de la communauté

Aucune solution publiée pour l'instant. Résolvez ce défi pour partager la première.