Menu
Coddy logo textTech

Comprobación de subconjuntos

Parte de la sección Lógica y flujo del Journey de Kotlin de Coddy. Lección 14 de 63.

available.containsAll(required) comprueba si todos los elementos requeridos están disponibles. Las entradas duplicadas en una lista de elementos requeridos no exigen varias copias, porque se trata de una comprobación de pertenencia. Una colección requerida vacía siempre está contenida.

Dentro de main:

val available = setOf("pen", "pad")
println(available.containsAll(listOf("pen", "pen")))

Ambos requisitos solicitan la misma pertenencia, que está disponible.

containsAll comprueba la pertenencia, no cuántas copias hay disponibles.

challenge icon

Desafío

Intermedio

Completa canCover con los parámetros available: List<String>, required: List<String>. Devuelve si cada elemento requerido está presente entre los elementos disponibles. Este es un problema de pertenencia, no un problema de cantidad.

A menos que se indiquen límites más estrictos arriba, las colecciones contienen como máximo 100 elementos en cada nivel, y los argumentos enteros y los valores enteros de las colecciones están entre -1000 y 1000. El texto proporcionado para el análisis puede incluir representaciones no válidas o fuera de rango, como se describe.

Devuelve un valor de tipo Boolean. Conserva el código de entrada/salida proporcionado. Lee los argumentos escalares uno por línea; una lista comienza con su cantidad, seguida de sus elementos, y un mapa comienza con su cantidad de entradas, seguida de cada clave y valor. Las listas anidadas repiten el formato de cantidad y elementos para cada fila. El main proporcionado imprime el valor devuelto seguido de un salto de línea. Las listas utilizan el formato estándar entre corchetes de Kotlin; no imprimas etiquetas adicionales.

Pruébalo tú mismo

fun canCover(available: List<String>, required: List<String>): Boolean {
    // Escribe tu solución aquí.
    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))
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y flujo

Practica por tu cuenta: Playground de Kotlin