Итоги — Счетчик слов
Часть раздела Logic & Flow путешествия по Rust на Coddy — урок 34 из 66.
Задание
ЛегкоВы получите предложение в качестве входных данных. Подсчитайте, сколько раз каждое слово встречается в предложении, и сохраните результаты в хеш-карте (hash map). Затем выведите каждое уникальное слово вместе с его количеством.
Требования:
- Импортируйте
HashMapизstd::collections - Создайте изменяемую хеш-карту с типами
HashMap<String, i32> - Прочитайте входное предложение как одну строку
- Разделите предложение на отдельные слова, используя
.split_whitespace() - Для каждого слова используйте
.entry()с.or_insert(0), чтобы инициализировать счетчик значением0, если слово еще не существует - После использования
.or_insert(0), увеличьте счетчик для этого слова на1 - После обработки всех слов переберите хеш-карту и выведите каждое слово с его количеством в формате:
[word]: [count]
Ввод:
- Одна строка, содержащая предложение со словами, разделенными пробелами (например,
hello world hello rust world hello)
Вывод:
- По одной строке для каждого уникального слова в формате:
[word]: [count] - Порядок строк в выводе может меняться от запуска к запуску
Попробуйте сами
use std::collections::HashMap;
use std::io;
fn main() {
// Считать входное предложение
let mut sentence = String::new();
io::stdin().read_line(&mut sentence).expect("Failed to read line");
let sentence = sentence.trim();
// Создать изменяемую хеш-карту для хранения количества слов
let mut word_count: HashMap<String, i32> = HashMap::new();
// TODO: Напишите свой код ниже
// Разделить предложение на слова и посчитать каждое слово
// Вывести каждое слово и его количество
}Все уроки раздела Logic & Flow
1Продвинутое управление потоком выполнения
Выражение 'match'Сопоставление нескольких значенийСопоставление диапазоновВыражение 'if let'Циклы как выраженияИтоги — Простой парсер команд4Группировка данных с помощью структур
Что такое структура?Обзор структурДоступ к полям структурыИзменяемые структурыСтруктуры как параметры функцийКортежные структурыИтоги: создание структуры Book7Обработка ошибок с помощью 'Result'
Что такое 'Result'?Использование 'match' с 'Result'is_ok() и is_err()Сокращения: unwrap и expectОператор вопросительного знака '?'Парсинг строк в числаИтоги: функция безопасного деления10Замыкания и анонимные функции
Что такое замыкание?Определение простого замыканияЗамыкания с параметрамиЗахват окруженияИтоги: Простое замыкание-сумматор2Введение в векторы
Что такое вектор?Создание вектораДобавление элементов с помощью pushДоступ к элементам вектораИтерация по векторуИзменяемая итерацияУдаление элементовИтоги — Простой счетчик очков5Пары «ключ-значение» в Hash Map
Что такое Hash Map?Создание Hash MapВставка пар «ключ-значение»Доступ к значениямИтерация по Hash MapОбновление значенияУдаление парыИтоги — Счетчик слов8Проект: Простой инвентарь товаров
Настройка проектаДобавление товараПроверка наличияПродажа товараСобираем всё воедино3Список дел в командной строке
Настройка проектаДобавление задачиПросмотр всех задачУдаление задачиИтоговый код6Обработка отсутствия значения с 'Option'
Что такое 'Option'?Использование 'match' с 'Option'is_some() и is_none()Распаковка 'Option'Метод expectЗначение по умолчанию: unwrap_orИтоги: поиск элемента