Exercícios de Go

Word Frequency Counter in Go

Count how often each word appears with a map and print the most common ones.

  • Iniciante
  • 3 min de leitura
  • 1 exemplo executável
O que você vai aprender
  • strings.Fields
  • counts[word]++
  • Sorting by count
counts
"the"3
"brown"1
"dog"1

The word is the key, the count is the value

Counting words is a typical job for a map: the word is the key and the number of times it appears is the value.

counts[word]++ works even for a new word, because a missing key reads as 0. The words are then sorted by count, highest first, and alphabetically when the counts are equal, so the output is always the same.

Pontos-chave

  1. A missing key reads as 0, so ++ just works.
  2. Sort by count, then by word.
  3. words[:3] keeps the top three.

Exemplo executável de Go

Go
Executar código →
main.go
package main

import (
	"fmt"
	"sort"
	"strings"
)

func main() {
	text := "the quick brown fox jumps over the lazy dog the end"
	counts := map[string]int{}
	for _, word := range strings.Fields(text) {
		counts[word]++
	}

	words := make([]string, 0, len(counts))
	for word := range counts {
		words = append(words, word)
	}
	sort.Slice(words, func(i, j int) bool {
		if counts[words[i]] != counts[words[j]] {
			return counts[words[i]] > counts[words[j]]
		}
		return words[i] < words[j]
	})

	for _, word := range words[:3] {
		fmt.Printf("%s: %d\n", word, counts[word])
	}
}
Gerar um botão Run para este exemplo Resultado da execução
the: 3
brown: 1
dog: 1

Pratique

Abra o exemplo no compilador online, mude um valor ou adicione uma linha e tente prever a saída antes de executar. Depois quebre o código de propósito e leia a mensagem do compilador.

Terminou esta lição?

Marque como aprendida para acompanhar seu progresso.

Pratique com um desafio

Use o conteúdo desta lição para resolver um problema real. Cada desafio roda no navegador, com testes instantâneos e uma revisão por IA.

Todos os desafios