Menu
Coddy logo textTech

Récapitulatif - Stockage clé-valeur

Fait partie de la section Fondamentaux du Journey GO de Coddy — leçon 93 sur 109.

challenge icon

Défi

Facile

Pratiquons l'utilisation des maps avec un simple compteur de mots !

Votre tâche consiste à implémenter un programme qui compte le nombre de fois que chaque mot apparaît dans une liste de mots.

Exigences :

  1. Complétez la fonction addWord() qui ajoute un mot à la map du compteur
  2. Complétez la fonction getCount() qui renvoie le compte pour un mot spécifique
  3. Complétez la fonction removeWord() qui supprime un mot du compteur

Il s'agit d'un simple récapitulatif de la manière d'utiliser les maps comme stockage clé-valeur.

Remarque : La sortie affichera les comptes de mots par ordre alphabétique pour plus de cohérence.

Essayez vous-même

package main

import (
	"fmt"
	"sort"
)

// addWord ajoute un mot à la map du compteur
func addWord(counter map[string]int, word string) {
	// Votre code ici
}

// getCount retourne le nombre d'occurrences pour un mot spécifique
func getCount(counter map[string]int, word string) int {
	// Votre code ici
	return 0
}

// removeWord supprime un mot du compteur
// Retourne true si le mot a été trouvé et supprimé
func removeWord(counter map[string]int, word string) bool {
	// Votre code ici
	return false
}

// printWordCounts affiche le décompte des mots par ordre alphabétique
func printWordCounts(counter map[string]int) {
	// Récupérer toutes les clés (mots) de la map
	words := make([]string, 0, len(counter))
	for word := range counter {
		words = append(words, word)
	}
	
	// Trier les mots par ordre alphabétique
	sort.Strings(words)
	
	// Afficher chaque mot et son décompte dans l'ordre trié
	for _, word := range words {
		fmt.Printf("%s: %d\n", word, counter[word])
	}
}

func main() {
	// Initialiser la map du compteur de mots
	wordCounter := make(map[string]int)
	
	// Ajouter quelques mots
	words := []string{"apple", "banana", "apple", "orange", "banana", "apple"}
	for _, word := range words {
		addWord(wordCounter, word)
	}
	
	// Afficher le décompte des mots
	fmt.Println("Word counts:")
	printWordCounts(wordCounter)
	
	// Obtenir le décompte pour des mots spécifiques
	fmt.Printf("\nCount for 'apple': %d\n", getCount(wordCounter, "apple"))
	fmt.Printf("Count for 'grape': %d\n", getCount(wordCounter, "grape"))
	
	// Supprimer un mot
	removed := removeWord(wordCounter, "banana")
	fmt.Printf("\nRemoved 'banana': %v\n", removed)
	
	// Essayer de supprimer un mot inexistant
	removed = removeWord(wordCounter, "grape")
	fmt.Printf("Removed 'grape': %v\n", removed)
	
	// Afficher le décompte final des mots
	fmt.Println("\nFinal word counts:")
	printWordCounts(wordCounter)
}

Toutes les leçons de Fondamentaux