Упражнения по Go

Word Frequency Counter in Go

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

  • Начальный
  • Чтение: 3 мин
  • Примеров для запуска: 1
Что вы узнаете
  • 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.

Главное

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

Пример на Go, который можно запустить

Go
Запустить код →
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])
	}
}
Получить кнопку запуска для этого примера Результат выполнения
the: 3
brown: 1
dog: 1

Практика

Откройте пример в онлайн-компиляторе, измените значение или добавьте строку и попробуйте предсказать вывод до запуска. Затем намеренно сломайте код и прочитайте сообщение компилятора.

Закончили этот урок?

Отметьте его как изученный, чтобы следить за прогрессом.

Далее: Functions and Multiple Return Values →

Попрактикуйтесь на задаче

Примените материал этого урока к реальной задаче. Каждая задача запускается в браузере, с мгновенными тестами и разбором от ИИ.

Все задачи