0Pricing
Competitive Programming Academy · Leçon

Compter les lettres avec une table de fréquences

Décompter les caractères avec un dictionnaire ou un tableau

Compter les lettres avec une table de fréquences est une leçon Competitive Programming Academy gratuite sur CoddyKit. Ceci est la leçon 2 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.

Pourquoi compter les caractères

De nombreux problèmes sur les chaînes se résument à une question : combien de fois chaque caractère apparaît-il ? Une table de fréquences répond à cette question en un seul passage. 📊

La méthode du dictionnaire

Un dict classique associe chaque caractère à son nombre d’occurrences. Il fonctionne avec n’importe quel alphabet, y compris Unicode et les symboles.

freq = {}
for ch in 'apple':
    freq[ch] = freq.get(ch, 0) + 1
print(freq)

get() évite KeyError

L’utilisation de get(ch, 0) renvoie 0 lorsque la clé est absente ; la première fois que vous voyez une lettre, son compteur commence donc directement à un.

Counter s’en charge

La classe Counter du module collections construit toute la table en une seule ligne. C’est la solution favorite des concours pour sa rapidité et sa clarté.

from collections import Counter
freq = Counter('apple')
print(freq['p'])  # 2

Les clés absentes renvoient zéro

Un Counter ne déclenche jamais d’erreur pour une clé absente. Demander une lettre que vous n’avez jamais vue renvoie simplement 0, ce qui évite les embranchements dans votre code.

from collections import Counter
c = Counter('abc')
print(c['z'])  # 0

La méthode du tableau fixe

Pour les lettres minuscules uniquement, une liste de 26 cases est encore plus rapide. Indexez chaque lettre avec un calcul fondé sur ord et augmentez le compteur.

cnt = [0] * 26
for ch in 'apple':
    cnt[ord(ch) - ord('a')] += 1

Compromis entre tableau et dictionnaire

Le tableau est le plus rapide, mais ne convient qu’à un petit alphabet connu. Le dict ou Counter accepte n’importe quels caractères, avec un léger coût supplémentaire.

Trouver les plus fréquents

Counter fournit most_common(k), qui renvoie les k caractères les plus fréquents, déjà triés par fréquence. Aucun tri manuel n’est nécessaire.

from collections import Counter
print(Counter('mississippi').most_common(1))

Comparer deux tables

Deux chaînes sont des anagrammes exactement lorsque leurs tables de fréquences sont identiques. Comparer deux Counter tient en une seule ligne.

from collections import Counter
print(Counter('listen') == Counter('silent'))  # True

Un seul passage suffit

Construire la table se fait en O(n), avec un seul parcours de la chaîne. Ensuite, chaque recherche s’effectue en temps constant.

Soustraire pour trouver le surplus

Les Counter prennent en charge la soustraction ; vous pouvez donc repérer les caractères présents dans une chaîne mais absents d’une autre. C’est très utile pour les problèmes de type note de rançon.

from collections import Counter
print(Counter('aabb') - Counter('ab'))

Vérification rapide

Une question sur le comptage des caractères.

Récapitulatif

Vous pouvez maintenant compter les caractères avec un dict, un Counter ou un tableau de 26 cases, puis utiliser ces tables pour tester les anagrammes et trouver les lettres fréquentes. 🎉

Questions Fréquemment Posées

La leçon « Compter les lettres avec une table de fréquences » est-elle gratuite ?

Oui — le texte complet de « Compter les lettres avec une table de fréquences » 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 « Compter les lettres avec une table de fréquences » ?

Décompter les caractères avec un dictionnaire ou un tableau 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 2 sur 4.

Combien de temps prend la leçon « Compter les lettres avec une table de fréquences » ?

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