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. Mismo tipo de element para cada miembro, no se permiten duplicados, sin 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 faltaCrear un set a partir de un arreglo elimina duplicados en un solo paso:
let unique = Set([1, 2, 2, 3, 3, 3])
// 3 elementos, el orden exacto no está garantizadoDesafío
PrincipianteLee una sola línea de entrada: una lista de palabras separadas por comas (posiblemente con duplicados).
Imprime tres líneas:
- El número de palabras únicas (usa
Set) - Las palabras únicas ordenadas alfabéticamente, unidas con
, truecuando la entrada contenga la palabraswift, de lo contrariofalse(usacontains)
Para la entrada swift,ruby,go,swift,go,rust, la salida es:
4
go,ruby,rust,swift
truePruébalo tú mismo
let words = readLine()!.components(separatedBy: ",")
// TODO: deduplicar vía Set, imprimir conteo, unidos ordenados, contiene el texto exacto de las instrucciones
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
1Strings a fondo
Conteo e índicesMayúsculas, minúsculas y TrimBúsqueda en StringsDividir y unirReemplazo de subcadenasResumen: Validación de usuario4Conjuntos
Crear conjuntosUnión e intersecciónResta y diferencia simétricaSubconjunto y superconjuntoResumen - Filtro de etiquetas7Proyecto - Seguimiento de hábitos
Descripción general del proyectoMarcar como completado10Proyecto - Motor de cuestionarios
Descripción general del proyectoHacer preguntas2Rangos e Intervalos
Cerrados vs. SemiabiertosSaltos (Stride)Métodos de RangosRangos en SwitchResumen - Cuadrícula de calendario5Funciones de orden superior Pt. 1
MapFilterReduceEncadenar map, filter, reduceResumen - Estadísticas de palabrasPractica por tu cuenta: Playground de Swift