Verificare i sottoinsiemi
Fa parte della sezione Logica e flusso del percorso Kotlin di Coddy. Lezione 14 di 63.
available.containsAll(required) verifica se ogni elemento richiesto è disponibile. Le voci duplicate in un elenco di elementi richiesti non richiedono più copie, perché si tratta di un controllo di appartenenza. Una raccolta richiesta vuota è sempre contenuta.
All'interno di main:
val available = setOf("pen", "pad")
println(available.containsAll(listOf("pen", "pen")))Entrambi i requisiti richiedono lo stesso elemento, che è disponibile.
containsAll verifica l'appartenenza, non quante copie sono disponibili.
Sfida
MedioCompleta canCover con i parametri available: List<String>, required: List<String>. Restituisci se ogni elemento richiesto è presente tra gli elementi disponibili. Questo è un problema di appartenenza, non di quantità.
A meno che sopra non siano specificati limiti più restrittivi, le raccolte contengono al massimo 100 elementi a ciascun livello e gli argomenti interi e i valori interi nelle 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 Boolean. Mantieni il codice di input/output fornito. Legge gli argomenti scalari uno per riga; una lista inizia con il suo conteggio seguito dai suoi elementi, e una mappa inizia con il conteggio delle sue voci seguito da ciascuna chiave e valore. Le liste annidate ripetono il formato conteggio-elementi per ogni riga. Il main fornito stampa il valore restituito seguito da un carattere di nuova riga. Le liste usano il formato standard tra parentesi quadre di Kotlin; non stampare etichette aggiuntive.
Provalo tu
fun canCover(available: List<String>, required: List<String>): Boolean {
// Scrivi qui la tua soluzione.
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))
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Mappe Parte 1
Creare mappeConsultare le mappe in modo sicuroAggiornare le mappeControllare le chiaviRiepilogo - Banco di borsa4Collezioni annidate
Liste di listeAttraversare le righeRiepiloghi delle righeAppiattire liste annidateRipasso - File di posti a sedere7Pipeline di collezioni
Trasformare con MapFiltrare i valoriVerificare le regole della collezioneAccumulare con FoldRiepilogo - Totali approvati2Mappe Parte 2
Iterare sulle voci delle mappeChiavi e valoriMappe di frequenzaMappe annidateRiepilogo - Report delle frequenze5Progetto - Rubrica
Salva contattiTrova contatti3Insiemi e appartenenza
Creare insiemiAggiornare gli insiemiOperazioni sugli insiemiVerificare i sottoinsiemiRiepilogo - Ospiti dell'evento6Valori delle funzioni
Scrivere funzioni lambdaTipi di funzionePassare funzioniVariabili catturateRiepilogo - Punteggio configurabileEsercitati da solo: Playground Kotlin