Menu
Coddy logo textTech

Tworzenie zbiorów

Część sekcji Logika i przepływ programu ścieżki Swift w Coddy. Lekcja 18 z 56.

Set to nieuporządkowany zbiór unikatowych wartości. Każdy element ma ten sam typ, duplikaty są niedozwolone, a kolejność iteracji jest nieprzewidywalna.

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

Adnotacja typu Set<String> jest wymagana w formie literału, ponieważ samo ["a", "b"] zostałoby zinterpretowane jako Array.

Trzy podstawowe operacje: contains, insert i remove. Dwie ostatnie zwracają informację o tym, czy zmiana miała znaczenie.

colors.insert("yellow")         // dodaje go
colors.insert("red")            // już tam jest, bez efektu
colors.contains("green")        // true
colors.remove("blue")           // zwraca "blue" lub nil, jeśli go nie ma

Utworzenie zbioru z tablicy usuwa duplikaty za jednym razem:

let unique = Set([1, 2, 2, 3, 3, 3])
// 3 elementy, dokładna kolejność nie jest gwarantowana
challenge icon

Wyzwanie

Początkujący

Wczytaj jeden wiersz wejścia: listę słów oddzielonych przecinkami (mogą się powtarzać).

Wypisz trzy wiersze:

  1. Liczbę unikalnych słów (użyj Set)
  2. Unikalne słowa posortowane alfabetycznie, połączone za pomocą ,
  3. true, jeśli wejście zawiera słowo swift, w przeciwnym razie false (użyj contains)

Dla wejścia swift,ruby,go,swift,go,rust wynikiem jest:

4
go,ruby,rust,swift
true

Spróbuj swoich sił

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

// TODO: usuń duplikaty za pomocą Set, wypisz liczbę elementów, połącz posortowane elementy, zawiera dokładny tekst z instrukcji
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Edytor online Swift