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

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

Kendi başına pratik yap: Swift playground