Menu
Coddy logo textTech

Fark ve Simetrik Fark

Coddy'nin Swift Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 20 / 56.

İki küme işlemi daha araç setini tamamlar.

subtracting, ilk kümenin ikinci kümede bulunmayan elemanlarını döndürür:

let a: Set = [1, 2, 3, 4]
let b: Set = [3, 4, 5]
a.subtracting(b)             // {1, 2}

symmetricDifference iki kümeden tam olarak birinde bulunan, asla her ikisinde birden bulunmayan öğeleri döndürür:

a.symmetricDifference(b)     // {1, 2, 5}

union ve intersection ile birlikte, bu dördü günlük hayatta karşılaşacağınız her küme cebiri sorusunu kapsar.

Küme üyeliği aynı zamanda bir filtre olarak da yararlıdır: bir değerin bir kümede olup olmadığını O(1) sürede sorgulayın:

let stopwords: Set = ["the", "a", "an"]
let words = ["the", "cat", "sat", "on", "a", "mat"]
let real = words.filter { !stopwords.contains($0) }
// ["cat", "sat", "on", "mat"]
challenge icon

Görev

Kolay

Her biri virgülle ayrılmış dizelerden oluşan iki satırlık girdi okuyun. Bunları sırasıyla currentMembers ve renewedMembers olarak ele alın.

Her biri alfabetik olarak sıralanmış ve , ile birleştirilmiş (veya hiç yoksa boş) üç satır yazdırın:

  1. Lapsed: <...> > current eksi renewed
  2. New: <...> > renewed eksi current
  3. Stayed: <...> > ikisinin kesişimi

1. satırdaki alice,bob,cara ve 2. satırdaki bob,cara,dan girdisi için çıktı şöyledir:

Lapsed: alice
New: dan
Stayed: bob,cara

Kopya kağıdı

subtracting, birinci kümede olup ikinci kümede olmayan elemanları döndürür:

let a: Set = [1, 2, 3, 4]
let b: Set = [3, 4, 5]
a.subtracting(b)         // {1, 2}

symmetricDifference, iki kümeden tam olarak birinde bulunan elemanları döndürür:

a.symmetricDifference(b) // {1, 2, 5}

contains ile bir kümeyi O(1) filtresi olarak kullanın:

let stopwords: Set = ["the", "a", "an"]
let words = ["the", "cat", "sat", "on", "a", "mat"]
let real = words.filter { !stopwords.contains($0) }
// ["cat", "sat", "on", "mat"]

Kendin dene

let current = Set(readLine()!.components(separatedBy: ","))
let renewed = Set(readLine()!.components(separatedBy: ","))

// YAPILACAK: Süresi Dolanları (current - renewed), Yenileri (renewed - current) ve Devam Edenleri (intersection) yazdırın
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler