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 faltaCrear 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á 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 contiene la palabraswift, de lo contrariofalse(usacontains)
Para la entrada swift,ruby,go,swift,go,rust, la salida es:
4
go,ruby,rust,swift
trueHoja 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 existeCrea un set a partir de un array para eliminar duplicados:
let unique = Set([1, 2, 2, 3, 3, 3]) // 3 elementosPruébalo tú mismo
let words = readLine()!.components(separatedBy: ",")
// TODO: eliminar duplicados mediante Set, imprimir el conteo, ordenados y unidos, contiene "swift"
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 palabras