0Pricing
Competitive Programming Academy · Leçon

Vérifier correctement les palindromes

Comparer efficacement les deux extrémités

Vérifier correctement les palindromes est une leçon Competitive Programming Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Competitive Programming Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Competitive Programming Academy comprend 4 leçons au total.

Qu’est-ce qu’un palindrome

Un palindrome se lit de la même façon dans les deux sens, comme « radar » ou « kayak ». En vérifier un est un exercice classique pour commencer. 🔁

L’astuce du découpage

Python peut inverser une chaîne avec le découpage s[::-1]. Comparez-la à l’originale et vous obtenez une vérification en une seule ligne.

s = 'level'
print(s == s[::-1])  # True

Le découpage consomme plus de mémoire

Cette méthode est concise, mais elle construit une copie complète inversée. Pour les chaînes très longues, cette mémoire supplémentaire peut être importante lorsque les limites sont strictes.

La méthode des deux pointeurs

Placez un pointeur au début et un autre à la fin. Comparez-les, puis rapprochez-les vers le centre. Cette méthode utilise O(1) espace supplémentaire.

i, j = 0, len(s) - 1
while i < j:
    if s[i] != s[j]:
        break
    i += 1; j -= 1

S’arrêter au milieu

Les pointeurs doivent seulement se rejoindre à mi-chemin. Dès que i n’est pas inférieur à j, chaque paire a été comparée et la chaîne est un palindrome.

Une différence permet de s’arrêter tôt

La boucle à deux pointeurs peut return False dès qu’une paire diffère. Vous parcourez rarement toute la chaîne, ce qui accélère agréablement l’exécution.

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 True

Les deux sont en O(n)

Dans les deux cas, vous examinez chaque caractère au plus une fois ; les deux méthodes s’exécutent donc en temps linéaire. Elles ne diffèrent que par la mémoire supplémentaire utilisée.

Normaliser d’abord

De nombreux problèmes ignorent la casse et les espaces. Nettoyez d’abord la chaîne en la convertissant en minuscules et en ne conservant que les lettres et les chiffres.

raw = 'A man, a plan'
clean = ''.join(c.lower() for c in raw if c.isalnum())

Vérifier ensuite la chaîne nettoyée

Une fois la chaîne normalisée, appliquez votre test habituel de palindrome à la version nettoyée. C’est le schéma standard pour les phrases palindromes.

print(clean == clean[::-1])

Les pointeurs ignorent les non-lettres

Au lieu de nettoyer la chaîne au préalable, deux pointeurs peuvent ignorer sur place tout caractère non alphanumérique. Vous évitez ainsi de construire une seconde chaîne.

Palindromes de sous-chaînes

Les problèmes plus difficiles portent sur les sous-chaînes palindromiques. L’idée centrale est d’étendre autour du centre : partez de chaque position et progressez vers l’extérieur tant que les extrémités correspondent.

Vérification rapide

Une question sur les vérifications de palindromes.

Récapitulatif

Vous pouvez vérifier les palindromes avec un découpage rapide ou avec deux pointeurs économes en mémoire, et normaliser une entrée irrégulière avant le test. 🎉

Questions Fréquemment Posées

La leçon « Vérifier correctement les palindromes » est-elle gratuite ?

Oui — le texte complet de « Vérifier correctement les palindromes » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Competitive Programming Academy, passe à CoddyKit PRO. Le cours Competitive Programming Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Vérifier correctement les palindromes » ?

Comparer efficacement les deux extrémités Tu pratiques Competitive Programming Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Competitive Programming Academy ?

Aucune expérience préalable n'est requise. Competitive Programming Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Vérifier correctement les palindromes » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Competitive Programming Academy ?

Oui. Chaque leçon Competitive Programming Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Astuces avec les caractères, ord et chr
  2. Compter les lettres avec une table de fréquences
  3. Vérifier correctement les palindromes
  4. Découper, nettoyer et réunir les mots
← Retour à Competitive Programming Academy