Menu
Coddy logo textTech

Desafío - Suministros compartidos

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

challenge icon

Desafío

Experto

Completa sharedSupplies con los parámetros requests: List<String>, available: List<String>. Cada solicitud es una lista de elementos requeridos separados por comas. Recorta los campos, convierte los nombres ASCII a minúsculas y descarta los campos vacíos. Una solicitud se puede satisfacer si todos sus elementos requeridos distintos aparecen en available después de aplicar la misma normalización de recorte y conversión a minúsculas. Las solicitudes vacías se pueden satisfacer. Devuelve index=ready o index=missing:item1,item2 para cada solicitud, con nombres faltantes distintos y ordenados. Usa índices basados en cero. La disponibilidad se basa en la pertenencia, no en la 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 List<String>. 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 usan el formato estándar entre corchetes de Kotlin; no imprimas etiquetas adicionales.

Pruébalo tú mismo

fun sharedSupplies(requests: List<String>, available: List<String>): List<String> {
    // Escribe tu solución aquí.
    return emptyList()
}
fun main() {
    val requestsCount = readln().toInt()
    val requests = mutableListOf<String>()
    for (i0 in 0 until requestsCount) {
        val requestsItem = readLine().orEmpty()
        requests.add(requestsItem)
    }
    val availableCount = readln().toInt()
    val available = mutableListOf<String>()
    for (i0 in 0 until availableCount) {
        val availableItem = readLine().orEmpty()
        available.add(availableItem)
    }
    println(sharedSupplies(requests, available))
}

Todas las lecciones de Lógica y flujo

Practica por tu cuenta: Playground de Kotlin