Menu
Coddy logo textTech

Sfida - Materiali condivisi

Fa parte della sezione Logica e flusso del percorso Kotlin di Coddy. Lezione 63 di 63.

challenge icon

Sfida

Esperto

Completa sharedSupplies con i parametri requests: List<String>, available: List<String>. Ogni richiesta è un elenco di elementi necessari separati da virgole. Rimuovi gli spazi dai campi, converti in minuscolo i nomi ASCII e scarta i campi vuoti. Una richiesta può essere soddisfatta se tutti i suoi elementi necessari distinti compaiono in available dopo la stessa normalizzazione con rimozione degli spazi e conversione in minuscolo. Le richieste vuote possono essere soddisfatte. Restituisci index=ready oppure index=missing:item1,item2 per ogni richiesta, con i nomi mancanti distinti e ordinati. Usa indici a partire da zero. La disponibilità indica l'appartenenza, non la quantità.

A meno che non siano specificati limiti più rigorosi sopra, le raccolte contengono al massimo 100 elementi a ogni livello e gli argomenti interi e i valori interi delle raccolte sono compresi tra -1000 e 1000. Il testo fornito per l'analisi può includere rappresentazioni non valide o fuori intervallo, come descritto.

Restituisci un valore di tipo List<String>. Mantieni il codice di input/output fornito. Legge gli argomenti scalari uno per riga; un elenco inizia con il suo conteggio seguito dai suoi elementi e una mappa inizia con il conteggio delle sue voci seguito da ogni chiave e valore. Gli elenchi annidati ripetono il formato conteggio-ed-elementi per ogni riga. Il main fornito stampa il valore restituito seguito da un carattere di nuova riga. Gli elenchi usano il formato standard di Kotlin tra parentesi quadre; non stampare etichette aggiuntive.

Provalo tu

fun sharedSupplies(requests: List<String>, available: List<String>): List<String> {
    // Scrivi qui la tua soluzione.
    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))
}

Tutte le lezioni di Logica e flusso

Esercitati da solo: Playground Kotlin