OCaml (option informatique) · Chapitre 8 · Exercice de TD
Le mot le plus fréquent
Piles, files et tables de hachage · niveau 3 (difficile)
Énoncé
À partir de la table d'occurrences (exercice 6), écrire plus_frequent t qui renvoie le mot de plus grand effectif, à l'aide de Hashtbl.iter.
Corrigé
let plus_frequent t =
let meilleur = ref "" and maxi = ref 0 in
Hashtbl.iter
(fun mot n -> if n > !maxi then begin maxi := n; meilleur := mot end)
t;
!meilleur
Hashtbl.iter applique la fonction à chaque liaison (mot, n) ; on retient au passage le maximum dans deux références. L'ordre de parcours d'une table n'est pas spécifié, mais peu importe pour chercher un maximum. (Sur une table vide, la fonction renvoie "" ; on pourrait préférer un string option.)
Exercices semblables
- Renverser avec une pile corrigé
- Compter les occurrences corrigé
- Premier doublon corrigé
- Mémoïsation de Fibonacci corrigé
- Évaluer une expression postfixe corrigé