Union et intersection
Fait partie de la section Logique et Flux du Journey Swift de Coddy — leçon 19 sur 56.
Les sets excellent lorsque vous posez des questions d'appartenance impliquant deux collections.
let a: Set = [1, 2, 3, 4]
let b: Set = [3, 4, 5, 6]union retourne tous les éléments de chaque côté :
a.union(b) // {1, 2, 3, 4, 5, 6}intersection retourne uniquement les éléments qui apparaissent dans les deux :
a.intersection(b) // {3, 4}Chaque méthode retourne un nouveau Set. Les ensembles originaux restent inchangés. L'ordre d'itération sur le résultat n'est pas garanti, triez avant d'afficher.
Défi
FacileLisez deux lignes d'entrée. Chacune est une liste d'entiers séparés par des virgules.
Traitez-les comme des ensembles a et b. Affichez deux lignes :
- L'intersection, triée par ordre croissant, jointe avec
,(ou une ligne vide si elle est vide) - L'union, triée par ordre croissant, jointe avec
,
Pour l'entrée 1,2,3,4 sur la première ligne et 3,4,5,6 sur la seconde, la sortie est :
3,4
1,2,3,4,5,6Aide-mémoire
Opérations sur les ensembles en Swift :
let a: Set = [1, 2, 3, 4]
let b: Set = [3, 4, 5, 6]
a.union(b) // {1, 2, 3, 4, 5, 6} - éléments de l'un ou l'autre ensemble
a.intersection(b) // {3, 4} - éléments présents dans les deux ensemblesLes deux méthodes retournent un nouveau Set ; les originaux restent inchangés. Triez avant l'affichage car l'ordre d'itération n'est pas garanti.
Essayez vous-même
let a = Set(readLine()!.components(separatedBy: ",").map { Int($0)! })
let b = Set(readLine()!.components(separatedBy: ",").map { Int($0)! })
// TODO: intersection triée jointe, union triée jointe
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique et Flux
1Les chaînes de caractères en profondeur
Comptage et indicesCasse et nettoyageRecherche dans les chaînesDécoupage et jointureRemplacement de sous-chaînesRécapitulatif - Vérification du nom d'utilisateur4Ensembles
Création d'ensemblesUnion et intersectionSoustraction et différence symétriqueSous-ensemble et sur-ensembleRécapitulatif - Filtre de tags7Projet - Suivi d'habitudes
Aperçu du projetMarquer comme terminé10Projet - Moteur de quiz
Présentation du projetPoser des questions2Intervalles et Pas
Fermé vs Semi-ouvertLe PasMéthodes d'intervalleIntervalles dans un SwitchRécapitulatif - Grille de calendrier5Fonctions d'ordre supérieur, Partie 1
MapFilterReduceChaînage de map, filter, reduceRécapitulatif - Statistiques de mots