Menu
Coddy logo textTech

Unión e intersección

Parte de la sección Lógica y Flujo del Journey de Swift de Coddy — lección 19 de 56.

Los conjuntos destacan cuando realizas preguntas de pertenencia que involucran dos colecciones.

let a: Set = [1, 2, 3, 4]
let b: Set = [3, 4, 5, 6]

union devuelve todos los elementos de ambos lados:

a.union(b)              // {1, 2, 3, 4, 5, 6}

intersection devuelve solo los elementos que aparecen en ambos:

a.intersection(b)       // {3, 4}

Cada método devuelve un nuevo Set. Los conjuntos originales permanecen intactos. El orden de iteración sobre el resultado no está garantizado, ordene antes de imprimir.

challenge icon

Desafío

Fácil

Lee dos líneas de entrada. Cada una es una lista de enteros separados por comas.

Trátalas como conjuntos a y b. Imprime dos líneas:

  1. La intersección, ordenada de forma ascendente, unida con , (o una línea vacía cuando esté vacía)
  2. La unión, ordenada de forma ascendente, unida con ,

Para la entrada 1,2,3,4 en la primera línea y 3,4,5,6 en la segunda, la salida es:

3,4
1,2,3,4,5,6

Hoja de referencia

Operaciones de conjuntos en Swift:

let a: Set = [1, 2, 3, 4]
let b: Set = [3, 4, 5, 6]

a.union(b)         // {1, 2, 3, 4, 5, 6} - elementos de cualquiera de los conjuntos
a.intersection(b)  // {3, 4} - elementos en ambos conjuntos

Ambos métodos devuelven un nuevo Set; los originales no cambian. Ordena antes de imprimir ya que el orden de iteración no está garantizado.

Pruébalo tú mismo

let a = Set(readLine()!.components(separatedBy: ",").map { Int($0)! })
let b = Set(readLine()!.components(separatedBy: ",").map { Int($0)! })

// TODO: intersección ordenada unida, unión ordenada unida
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