Проверка подмножеств
Часть раздела Логика и управление потоком путешествия по Kotlin на Coddy. Урок 14 из 63.
available.containsAll(required) проверяет, доступен ли каждый требуемый элемент. Повторяющиеся элементы в списке требований не требуют нескольких копий, поскольку это проверка наличия. Пустая коллекция требований всегда содержится.
Внутри main:
val available = setOf("pen", "pad")
println(available.containsAll(listOf("pen", "pen")))Оба требования запрашивают одно и то же наличие, которое доступно.
containsAll проверяет принадлежность, а не количество доступных копий.
Задание
СреднеЗавершите canCover с параметрами available: List<String>, required: List<String>. Верните информацию о том, присутствует ли каждый требуемый элемент среди доступных элементов. Это задача на проверку принадлежности, а не на проверку количества.
Если выше не указаны более строгие ограничения, коллекции содержат не более 100 элементов на каждом уровне, а целочисленные аргументы и целочисленные значения коллекций находятся в диапазоне от -1000 до 1000. Текст, предоставленный для разбора, может содержать недопустимые представления или представления, выходящие за допустимый диапазон, как описано выше.
Верните значение типа Boolean. Сохраните предоставленный код ввода/вывода. Он считывает скалярные аргументы по одному в строке; список начинается с его количества, за которым следуют его элементы, а map начинается с количества записей, за которым следуют каждый ключ и значение. Вложенные списки повторяют формат «количество и элементы» для каждой строки. Предоставленный main выводит возвращаемое значение, за которым следует один перевод строки. Списки используют стандартный формат Kotlin со скобками; не выводите дополнительные метки.
Попробуйте сами
fun canCover(available: List<String>, required: List<String>): Boolean {
// Напишите ваше решение здесь.
return false
}
fun main() {
val availableCount = readln().toInt()
val available = mutableListOf<String>()
for (i0 in 0 until availableCount) {
val availableItem = readLine().orEmpty()
available.add(availableItem)
}
val requiredCount = readln().toInt()
val required = mutableListOf<String>()
for (i0 in 0 until requiredCount) {
val requiredItem = readLine().orEmpty()
required.add(requiredItem)
}
println(canCover(available, required))
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Карты, часть 1
Создание картБезопасный доступ к картамОбновление картПроверка ключейПовторение — складской учёт4Вложенные коллекции
Списки списковОбход строкСводки по строкамСведение вложенных списковПовторение — ряды мест7Конвейеры коллекций
Преобразование с помощью MapФильтрация значенийПроверка правил коллекцийНакопление с помощью FoldПовторение — одобренные итоги2Карты. Часть 2
Перебор записей картыКлючи и значенияКарты частотВложенные картыПовторение — отчёт о частотах5Проект — Книга контактов
Сохранение контактовПоиск контактов3Множества и принадлежность
Создание множествОбновление множествОперации над множествамиПроверка подмножествПовторение — гости мероприятия6Значения функций
Написание лямбдТипы функцийПередача функцийЗахваченные переменныеПовторение — настраиваемый счёт9Расширенный контроль потока выполнения
Защитные условияПрерывание именованных цикловПродолжение именованных цикловРекурсивные функцииПовторение — первая допустимая строкаПотренируйтесь самостоятельно: Песочница Kotlin