Menu
Coddy logo textTech

Operazioni sugli insiemi

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

L'unione mantiene i membri presenti in uno qualsiasi dei due insiemi, l'intersezione mantiene i membri condivisi e la sottrazione mantiene i membri del primo insieme che non sono presenti nel secondo. Queste operazioni restituiscono nuovi insiemi; la sottrazione dipende dall'ordine degli operandi.

All'interno di main:

val a = setOf(1, 2, 3)
val b = setOf(2, 4)
println(a.intersect(b).sorted())

Solo il due è presente in entrambi gli insiemi.

L’intersezione mantiene gli elementi condivisi; la sottrazione è direzionale.

challenge icon

Sfida

Medio

Completa sharedItems con i parametri first: List<Int>, second: List<Int>. Restituisci gli interi distinti presenti in entrambi gli input, ordinati in ordine crescente.

A meno che sopra non siano indicati limiti più rigorosi, 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<Int>. 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, mentre una mappa inizia con il conteggio delle sue voci seguito da ogni 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 sharedItems(first: List<Int>, second: List<Int>): List<Int> {
    // Scrivi qui la tua soluzione.
    return emptyList()
}
fun main() {
    val firstCount = readln().toInt()
    val first = mutableListOf<Int>()
    for (i0 in 0 until firstCount) {
        val firstItem = readln().toInt()
        first.add(firstItem)
    }
    val secondCount = readln().toInt()
    val second = mutableListOf<Int>()
    for (i0 in 0 until secondCount) {
        val secondItem = readln().toInt()
        second.add(secondItem)
    }
    println(sharedItems(first, second))
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Playground Kotlin