Menu
Coddy logo textTech

Operaciones con conjuntos

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

La unión conserva los elementos que se encuentran en cualquiera de los dos conjuntos, la intersección conserva los elementos compartidos y la resta conserva los elementos del primer conjunto que no están en el segundo. Estas operaciones devuelven conjuntos nuevos; la resta depende del orden de los operandos.

Dentro de main:

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

Solo el dos aparece en ambos conjuntos.

La intersección conserva los elementos compartidos; la resta es direccional.

challenge icon

Desafío

Intermedio

Completa sharedItems con los parámetros first: List<Int>, second: List<Int>. Devuelve los enteros distintos que aparecen en ambas entradas, ordenados de forma ascendente.

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<Int>. 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 sharedItems(first: List<Int>, second: List<Int>): List<Int> {
    // Escribe tu solución aquí.
    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 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