Menu
Coddy logo textTech

Creare insiemi

Fa parte della sezione Logica e flusso del percorso Swift di Coddy. Lezione 18 di 56.

Un Set è una raccolta non ordinata di valori univoci. Ogni elemento deve essere dello stesso tipo, non sono ammessi duplicati e l’ordine di iterazione non è prevedibile.

var colors: Set<String> = ["red", "green", "blue", "red"]
print(colors.count)              // 3 (il duplicato "red" viene eliminato)

L'annotazione del tipo Set<String> è obbligatoria nella forma letterale perché ["a", "b"] da sola verrebbe dedotta come un Array.

Tre operazioni fondamentali: contains, insert e remove. Le ultime due restituiscono informazioni sul fatto che la modifica abbia avuto effetto.

colors.insert("yellow")         // lo aggiunge
colors.insert("red")            // già presente, nessun effetto
colors.contains("green")        // true
colors.remove("blue")           // restituisce "blue" o nil se non è presente

Creare un set da un array rimuove i duplicati in un solo passaggio:

let unique = Set([1, 2, 2, 3, 3, 3])
// 3 elementi, ordine esatto non garantito
challenge icon

Sfida

Principiante

Leggi una singola riga di input: un elenco di parole separate da virgole (possibilmente con duplicati).

Stampa tre righe:

  1. Il numero di parole uniche (usa Set)
  2. Le parole uniche ordinate alfabeticamente, unite con ,
  3. true quando l'input contiene la parola swift, altrimenti false (usa contains)

Per l'input swift,ruby,go,swift,go,rust, l'output è:

4
go,ruby,rust,swift
true

Provalo tu

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

// TODO: elimina i duplicati tramite Set, stampa il conteggio, gli elementi ordinati e uniti, e verifica se contiene il testo esatto delle istruzioni
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Playground Swift