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 desordenada de valores únicos. El mismo tipo de elemento para cada miembro, no se permiten duplicados, sin 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í solo 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í, no tiene efecto
colors.contains("green")        // true
colors.remove("blue")           // devuelve "blue" o nil si falta

Crear un conjunto a partir de un array elimina los 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, de lo contrario false (usa contains)

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

4
go,ruby,rust,swift
true

Hoja de referencia

Set – colección desordenada de valores únicos. Se requiere anotación de tipo al usar la sintaxis de literal de array:

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

Operaciones principales:

colors.insert("yellow")      // añade el elemento
colors.contains("green")     // true
colors.remove("blue")        // devuelve "blue" o nil si no existe

Crea un set a partir de un array para eliminar duplicados:

let unique = Set([1, 2, 2, 3, 3, 3]) // 3 elementos

Pruébalo tú mismo

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

// TODO: eliminar duplicados mediante Set, imprimir el conteo, ordenados y unidos, contiene "swift"
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