Menu
Coddy logo textTech

Création d'ensembles

Fait partie de la section Logique et Flux du Journey Swift de Coddy — leçon 18 sur 56.

Un Set est une collection non ordonnée de valeurs uniques. Même type d'élément pour chaque membre, aucun doublon autorisé, pas d'ordre d'itération prévisible.

var colors: Set<String> = ["red", "green", "blue", "red"]
print(colors.count)              // 3 (le doublon "red" est supprimé)

L'annotation de type Set<String> est obligatoire dans la forme littérale car ["a", "b"] en soi serait inféré comme un Array.

Trois opérations fondamentales : contains, insert et remove. Les deux dernières renvoient des informations indiquant si le changement a été significatif.

colors.insert("yellow")         // l'ajoute
colors.insert("red")            // déjà présent, aucun effet
colors.contains("green")        // true
colors.remove("blue")           // renvoie "blue" ou nil s'il est manquant

Créer un ensemble à partir d'un tableau supprime les doublons en une seule étape :

let unique = Set([1, 2, 2, 3, 3, 3])
// 3 éléments, l'ordre exact n'est pas garanti
challenge icon

Défi

Débutant

Lisez une seule ligne d'entrée : une liste de mots séparés par des virgules (éventuellement avec des doublons).

Affichez trois lignes :

  1. Le nombre de mots uniques (utilisez Set)
  2. Les mots uniques triés par ordre alphabétique, joints par ,
  3. true lorsque l'entrée contient le mot swift, sinon false (utilisez contains)

Pour l'entrée swift,ruby,go,swift,go,rust, la sortie est :

4
go,ruby,rust,swift
true

Aide-mémoire

Set – collection non ordonnée de valeurs uniques. Une annotation de type est requise lors de l'utilisation de la syntaxe de littéral de tableau :

var colors: Set<String> = ["red", "green", "blue", "red"]
print(colors.count) // 3 (doublon supprimé)

Opérations de base :

colors.insert("yellow")      // ajoute un élément
colors.contains("green")     // true
colors.remove("blue")        // renvoie "blue" ou nil s'il est manquant

Créer un ensemble à partir d'un tableau pour supprimer les doublons :

let unique = Set([1, 2, 2, 3, 3, 3]) // 3 éléments

Essayez vous-même

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

// TODO: dédoublonner via Set, afficher le nombre, trier et joindre, contient "swift"
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