Menu
Coddy logo textTech

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.

challenge icon

Défi

Facile

Lisez 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 :

  1. L'intersection, triée par ordre croissant, jointe avec , (ou une ligne vide si elle est vide)
  2. 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,6

Aide-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 ensembles

Les 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
quiz iconTestez-vous

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