Menu
CoddyTech

Selisih dan Selisih Simetris

Termasuk bagian Logika dan Alur dalam perjalanan Swift di Coddy. Pelajaran 20 dari 56.

Dua operasi set lainnya melengkapi perangkat ini.

subtracting mengembalikan elemen dari set pertama yang tidak ada di set kedua:

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

symmetricDifference mengembalikan elemen yang hanya terdapat di salah satu dari kedua set, tidak pernah di keduanya:

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

Bersama dengan union dan intersection, keempatnya mencakup semua soal aljabar set yang akan kamu temui sehari-hari.

Keanggotaan set juga berguna sebagai filter: tanyakan apakah suatu nilai ada di dalam set dalam O(1):

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

Tantangan

Mudah

Baca dua baris input, masing-masing berupa list string yang dipisahkan koma. Perlakukan keduanya sebagai currentMembers dan renewedMembers.

Cetak tiga baris, masing-masing diurutkan secara alfabetis dan digabungkan dengan , (atau kosong jika tidak ada):

  1. Lapsed: <...> > current dikurangi renewed
  2. New: <...> > renewed dikurangi current
  3. Stayed: <...> > irisan keduanya

Untuk input alice,bob,cara pada baris 1 dan bob,cara,dan pada baris 2, output-nya adalah:

Lapsed: alice
New: dan
Stayed: bob,cara

Coba sendiri

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

// TODO: cetak Lapsed (current - renewed), New (renewed - current), Stayed (irisan)
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Logika dan Alur

Latihan sendiri: Playground Swift