informatique (tronc commun des prépas scientifiques) · Chapitre 2 · Application directe du cours
Premiers pas de dictionnaire
Recherche séquentielle et dictionnaires · niveau 1 (application)
Énoncé
Écrire une fonction frequences(s) renvoyant le dictionnaire d'occurrences des caractères de la chaîne s, puis l'utiliser pour identifier le caractère le plus fréquent de la chaîne "abracadabra".
Corrigé
def frequences(s: str) -> dict:
f = {}
for c in s:
f[c] = f.get(c, 0) + 1
return f
f = frequences("abracadabra")
# f vaut {'a': 5, 'b': 2, 'r': 2, 'c': 1, 'd': 1}
plus_frequent = None
for c in f:
if plus_frequent is None or f[c] > f[plus_frequent]:
plus_frequent = c
# plus_frequent vaut 'a'
Le comptage prend étapes (où est le nombre de caractères). La recherche du maximum sur les clés du dictionnaire prend également étapes (où est le nombre de caractères distincts). La complexité totale est linéaire, en .