Vereinigung und Schnittmenge
Teil des Abschnitts Logik & Kontrollfluss der Swift-Journey von Coddy — Lektion 19 von 56.
Sets glänzen, wenn man Fragen zur Zugehörigkeit stellt, die zwei Sammlungen betreffen.
let a: Set = [1, 2, 3, 4]
let b: Set = [3, 4, 5, 6]union gibt jedes Element von beiden Seiten zurück:
a.union(b) // {1, 2, 3, 4, 5, 6}intersection gibt nur die Elemente zurück, die in beiden vorkommen:
a.intersection(b) // {3, 4}Jede Methode gibt ein neues Set zurück. Die ursprünglichen Sets bleiben unverändert. Die Iterationsreihenfolge über das Ergebnis ist nicht garantiert, sortieren Sie vor der Ausgabe.
Aufgabe
EinfachLies zwei Zeilen Eingabe ein. Jede ist eine durch Kommas getrennte Liste von Ganzzahlen.
Behandle sie als Mengen a und b. Gib zwei Zeilen aus:
- Die Schnittmenge, aufsteigend sortiert, verbunden mit
,(oder eine leere Zeile, wenn sie leer ist) - Die Vereinigungsmenge, aufsteigend sortiert, verbunden mit
,
Für die Eingabe 1,2,3,4 in der ersten Zeile und 3,4,5,6 in der zweiten Zeile ist die Ausgabe:
3,4
1,2,3,4,5,6Spickzettel
Mengenoperationen in Swift:
let a: Set = [1, 2, 3, 4]
let b: Set = [3, 4, 5, 6]
a.union(b) // {1, 2, 3, 4, 5, 6} - Elemente aus einer der beiden Mengen
a.intersection(b) // {3, 4} - Elemente in beiden MengenBeide Methoden geben ein neues Set zurück; die Originale bleiben unverändert. Sortieren Sie vor der Ausgabe, da die Iterationsreihenfolge nicht garantiert ist.
Probier es selbst
let a = Set(readLine()!.components(separatedBy: ",").map { Int($0)! })
let b = Set(readLine()!.components(separatedBy: ",").map { Int($0)! })
// TODO: Schnittmenge sortiert verbunden, Vereinigung sortiert verbunden
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Kontrollfluss
1Strings im Detail
Zählen und IndizesGroß-/Kleinschreibung und TrimmenSuchen in StringsTeilen und ZusammenfügenTeilstrings ersetzenWiederholung – Benutzernamen-Check4Mengen
Mengen erstellenVereinigung und SchnittmengeDifferenz und symmetrische DifferenzTeilmenge und ObermengeRückblick – Tag-Filter7Projekt - Habit Tracker
ProjektübersichtAls erledigt markieren2Bereiche & Schrittweiten
Geschlossen vs. halboffenSchrittweiteRange-MethodenRanges in SwitchRückblick – Kalender-Grid5Funktionen höherer Ordnung Teil 1
MapFilterReduceVerkettung von map, filter, reduceRückblick – Wortstatistiken