Повторение — Уникальные элементы
Часть раздела Logic & Flow путешествия по Rust на Coddy — урок 64 из 66.
Задание
ЛегкоНапишите функцию get_unique_items, которая принимает numbers и возвращает вектор, содержащий только уникальные значения из входных данных.
Используйте хэш-карту (hash map), чтобы отслеживать, какие числа вы уже встречали, а затем создайте результирующий вектор, содержащий только те числа, которые встречаются во входных данных ровно один раз.
Логика:
- Создайте хэш-карту для подсчета количества вхождений каждого числа
- Пройдите циклом по входному вектору и обновите счетчик для каждого числа
- Создайте результирующий вектор
- Снова пройдите циклом по входному вектору и добавьте в результат числа, счетчик которых равен 1
- Верните результирующий вектор
Параметры:
numbers(Vec<i32>): Вектор целых чисел, который может содержать дубликаты
Возвращает: Вектор, содержащий только те числа, которые встречаются во входных данных ровно один раз, в том порядке, в котором они появились впервые (Vec<i32>)
Попробуйте сами
fn get_unique_items(numbers: Vec<i32>) -> Vec<i32> {
// Напишите код здесь
}
Все уроки раздела 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Проект: Простой инвентарь товаров
Настройка проектаДобавление товараПроверка наличияПродажа товараСобираем всё воедино11Финальные испытания
Повторение — Уникальные элементыПовторение — Валидатор профиля пользователяПовторение — Сводка оценок3Список дел в командной строке
Настройка проектаДобавление задачиПросмотр всех задачУдаление задачиИтоговый код6Обработка отсутствия значения с 'Option'
Что такое 'Option'?Использование 'match' с 'Option'is_some() и is_none()Распаковка 'Option'Метод expectЗначение по умолчанию: unwrap_orИтоги: поиск элемента