Menu
Coddy logo textTech

Crear conjuntos

Parte de la sección Lógica y Flujo del Journey de Swift de Coddy. Lección 18 de 56.

Un Set es una colección no ordenada de valores únicos. El mismo tipo de elemento para cada miembro, no se permiten duplicados y no hay un orden de iteración predecible.

var colors: Set<String> = ["red", "green", "blue", "red"]
print(colors.count)              // 3 (el duplicado "red" se elimina)

La anotación de tipo Set<String> es obligatoria en la forma literal porque ["a", "b"] por sí sola se inferiría como un Array.

Tres operaciones principales: contains, insert y remove. Las dos últimas devuelven información sobre si el cambio fue significativo.

colors.insert("yellow")         // lo añade
colors.insert("red")            // ya está ahí, sin efecto
colors.contains("green")        // true
colors.remove("blue")           // devuelve "blue" o nil si falta

Crear un conjunto a partir de un array elimina duplicados en un solo paso:

let unique = Set([1, 2, 2, 3, 3, 3])
// 3 elementos, el orden exacto no está garantizado
challenge icon

Desafío

Principiante

Lee una sola línea de entrada: una lista de palabras separadas por comas (posiblemente con duplicados).

Imprime tres líneas:

  1. El número de palabras únicas (usa Set)
  2. Las palabras únicas ordenadas alfabéticamente, unidas con ,
  3. true cuando la entrada contiene la palabra swift; en caso contrario, false (usa contains)

Para la entrada swift,ruby,go,swift,go,rust, la salida es:

4
go,ruby,rust,swift
true

Pruébalo tú mismo

let words = readLine()!.components(separatedBy: ",")

// TODO: deduplicar mediante Set, imprimir el conteo, unidos ordenados, contiene el texto exacto de las instrucciones
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 Swift