Итоги — Инвентарь
Часть раздела Логика и управление потоком путешествия по Swift на Coddy — урок 17 из 56.
Задание
СреднеВы отслеживаете инвентарь магазина. Прочитайте одну строку ввода: список операций через запятую для изначально пустого словаря [String: Int] под названием stock. Каждая операция имеет один из следующих форматов:
in:<item>:<qty>добавить количество к товару (используйте паттерн сабскрипта с дефолтным значением)out:<item>:<qty>вычесть количество. Если итоговое количество равно0или меньше, полностью удалите ключ.
После применения всех операций выведите:
- По одной строке для каждого оставшегося товара, отсортированных по алфавиту, в формате
<item>: <qty> Total units: <n>— общая сумма всех оставшихся значений
Для входных данных in:apple:5,in:bread:2,out:apple:3,in:apple:4,out:bread:5 выводом будет:
apple: 6
Total units: 6Попробуйте сами
let ops = readLine()!.components(separatedBy: ",")
var stock: [String: Int] = [:]
// TODO: разобрать каждую операцию в формате kind:item:qty; in прибавляет, out вычитает;
// удалить ключи, количество которых падает до <= 0; вывести отсортированные строки + итог
Все уроки раздела Логика и управление потоком
1Строки в деталях
Подсчет и индексыРегистр и удаление пробеловПоиск в строкахРазделение и объединениеЗамена подстрокИтоги — Проверка имени пользователя4Множества
Создание множествОбъединение и пересечениеРазность и симметрическая разностьПодмножество и надмножествоИтоги — Фильтр тегов7Проект — Трекер привычек
Обзор проектаОтметить выполнение10Проект — Движок викторины
Обзор проектаЗадаем вопросы2Диапазоны и шаги
Закрытые и полуоткрытыеШагМетоды диапазоновДиапазоны в SwitchИтоги: Сетка календаря3Словари
Объявление словарейБезопасный поискОбновление словарейИтерация по словарямГруппировка значенийИтоги — Инвентарь6Функции высшего порядка, часть 2
compactMapflatMapsorted(by:)Создание конвейеровПовторение — Таблица лидеров