Fondations Python & la méthode en 6 étapes · Leçon 4 sur 5

La méthode en 6 étapes — un exemple travaillé

C'est une façon répétable d'attaquer n'importe quel problème sans se bloquer. Regardez les six étapes se dérouler sur un classique — une fois vue, vous pouvez copier la forme à chaque fois.

Par Shahriyar · Mis à jour

L'idée, en une ligne

Ne vous précipitez pas sur le code. Comprenez le problème, essayez une idée lente mais simple, rendez-la plus rapide, puis écrivez-la — dans cet ordre.

1 · Reformuler

Redites-le avec vos propres mots : étant donné du texte, renvoyer le premier caractère (en lisant de gauche à droite) dont le compte dans toute la chaîne est exactement un. Entrée : une chaîne. Sortie : un caractère, ou un signal s'il n'y en a aucun.

2 · Exemples

Écrivez-en quelques-uns à la main, dont un délicat :

3 · Force brute

Prenez l'idée lente et évidente d'abord : pour chaque caractère, parcourez toute la chaîne et comptez combien de fois il apparaît ; renvoyez le premier dont le compte est 1. Ça marche — même si ça re-parcourt beaucoup.

4 · Optimiser

Tout ce re-parcours est un effort gaspillé. À la place, comptez chaque caractère une fois dans un dict, puis faites une seconde passe de gauche à droite et renvoyez le premier caractère dont le compte stocké est 1. Deux passes au lieu de plusieurs.

5 · Coder

▸ first_unique.py
def first_unique(text):
    # Step 4: count each character once
    counts = {}
    for ch in text:
        counts[ch] = counts.get(ch, 0) + 1

    # Second pass, left to right: first with count 1 wins
    for ch in text:
        if counts[ch] == 1:
            return ch
    return None            # edge case: nothing was unique

print(first_unique("swiss"))   # w
print(first_unique("aabb"))    # None
print(first_unique("z"))       # z

6 · Tracer

Vérifiez-le à la main. Pour "swiss" les comptes sont s→3, w→1, i→1. Seconde passe : s (3) on saute, w (1) → on renvoie "w". Ça correspond à l'exemple que vous avez écrit à l'étape 2 — cette correspondance est votre preuve.

La méthode maison — reformuler, exemples, force brute, optimiser, coder, tracer

Toutes les leçons de Fondations Python & la méthode en 6 étapes

  1. Variables, types, structures de contrôle & fonctions
  2. Listes, dicts, ensembles & tuples — quand et pourquoi
  3. Motifs de manipulation de chaînes
  4. La méthode en 6 étapes — un exemple travaillé
  5. Traçage à la main — là où la logique grandit vraiment