Повторение — складской учёт
Часть раздела Логика и управление потоком путешествия по Kotlin на Coddy. Урок 5 из 63.
Задание
СреднеЗавершите stockDesk с параметрами stock: Map<String, Int>, item: String, delivery: Int, sold: Int. Скопируйте stock, добавьте неотрицательное значение delivery для item (отсутствующее значение означает ноль), затем вычтите sold, если доступного stock достаточно. Верните итоговый stock или -1, если продажу невозможно выполнить. Delivery и sold являются неотрицательными.
Если выше не указаны более строгие ограничения, коллекции содержат не более 100 элементов на каждом уровне, а целочисленные аргументы и целочисленные значения коллекций находятся в диапазоне от -1000 до 1000. Текст, предоставляемый для разбора, может содержать некорректные представления или представления, выходящие за допустимый диапазон, как описано выше.
Верните значение типа Int. Сохраните предоставленный код ввода/вывода. Он считывает скалярные аргументы по одному в строке; список начинается с его количества элементов, за которым следуют элементы, а map начинается с количества записей, за которым следуют каждый ключ и значение. Для каждой строки вложенного списка формат «количество и элементы» повторяется. Предоставленный main выводит возвращаемое значение, за которым следует один символ новой строки. Списки используют стандартный формат Kotlin со скобками; не выводите дополнительные метки.
Попробуйте сами
fun stockDesk(stock: Map<String, Int>, item: String, delivery: Int, sold: Int): Int {
// Напишите ваше решение здесь.
return 0
}
fun main() {
val stockCount = readln().toInt()
val stock = mutableMapOf<String, Int>()
for (i0 in 0 until stockCount) {
val stockKey = readln()
val stockValue = readln().toInt()
stock[stockKey] = stockValue
}
val item = readLine().orEmpty()
val delivery = readln().toInt()
val sold = readln().toInt()
println(stockDesk(stock, item, delivery, sold))
}Все уроки раздела Логика и управление потоком
1Карты, часть 1
Создание картБезопасный доступ к картамОбновление картПроверка ключейПовторение — складской учёт4Вложенные коллекции
Списки списковОбход строкСводки по строкамСведение вложенных списковПовторение — ряды мест7Конвейеры коллекций
Преобразование с помощью MapФильтрация значенийПроверка правил коллекцийНакопление с помощью FoldПовторение — одобренные итоги2Карты. Часть 2
Перебор записей картыКлючи и значенияКарты частотВложенные картыПовторение — отчёт о частотах5Проект — Книга контактов
Сохранение контактовПоиск контактов3Множества и принадлежность
Создание множествОбновление множествОперации над множествамиПроверка подмножествПовторение — гости мероприятия6Значения функций
Написание лямбдТипы функцийПередача функцийЗахваченные переменныеПовторение — настраиваемый счёт9Расширенный контроль потока выполнения
Защитные условияПрерывание именованных цикловПродолжение именованных цикловРекурсивные функцииПовторение — первая допустимая строкаПотренируйтесь самостоятельно: Песочница Kotlin