Aller au contenu principal
U/
Idiomes
go

Compter les fréquences avec map[string]int

Lire une ligne de texte sur stdin, découper les mots selon les espaces, compter leurs fréquences dans une map[string]int, puis afficher les paires triées par clé.

15 minPublié le 20 mai 2026Proposé par Anonyme

Défi

// Lisez attentivement, codez sur votre machine

Énoncé

Le programme lit une ligne sur stdin avec bufio.NewReader et ReadString('\n'), puis découpe la chaîne en mots avec strings.Fields. Pour chaque mot il incrémente freq[mot]++ dans une map[string]int. Pour afficher les résultats dans un ordre déterministe, il extrait les clés dans une []string, les trie avec sort.Strings, puis affiche chaque paire "mot: N" sur une ligne séparée.

Contraintes

  • Compilé avec go build (Go 1.21+).
  • Packages autorisés : bufio, fmt, os, sort, strings.
  • L'affichage est trié par ordre alphabétique des clés.
  • Format de chaque ligne : <mot>: <nombre> (deux-points, espace, entier).
  • La casse est conservée : "Go" et "go" sont deux clés distinctes.

Exemple

Entrée :

go est rapide go est simple

Sortie :

est: 2
go: 2
rapide: 1
simple: 1
Espace solution

Proposer une solution

Connectez-vous ou créez un compte pour envoyer votre code (aucune exécution côté serveur — on stocke juste le texte pour la communauté).

// À garder en tête
  • D'abord, faire marcher

    On ne cherche pas à optimiser : d'abord, on fait marcher le truc. Optimiser vient ensuite — et ça aussi, ça s'apprend. (Si un défi porte sur l'optimisation, son énoncé le précise.)

  • Pas de mauvaise réponse

    Il n'y a pas de mauvaise réponse à un défi. Le but, c'est de le faire. Ce qui compte, c'est de s'entraîner.

  • Trop dur ? Au suivant

    Un défi te résiste ? N'hésite pas à en prendre un autre. Ils seront encore là demain.