Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

الطرح والفرق المتماثل

جزء من قسم المنطق والتدفق في رحلة Swift على Coddy — الدرس 20 من 56.

تُكمل عمليتان إضافيتان للمجموعات مجموعة الأدوات.

subtracting تعيد عناصر المجموعة الأولى التي ليست في الثانية:

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

تُرجع symmetricDifference العناصر الموجودة في واحدة فقط من المجموعتين، وليس في كلتيهما:

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

جنباً إلى جنب مع union و intersection، تغطي هذه الأربعة كل أسئلة جبر المجموعات التي ستواجهها يومياً.

تعد عضوية المجموعة مفيدة أيضًا كـ مرشح: اسأل عما إذا كانت القيمة موجودة في مجموعة في 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

التحدي

سهل

اقرأ سطرين من المدخلات، كل منهما عبارة عن قائمة من السلاسل النصية المفصولة بفاصلة. تعامل معهما كـ currentMembers و renewedMembers على التوالي.

اطبع ثلاثة أسطر، كل منها مرتب أبجدياً ومدمج بـ , (أو فارغاً في حال عدم وجود أي منها):

  1. Lapsed: <...> > current ناقص renewed
  2. New: <...> > renewed ناقص current
  3. Stayed: <...> > تقاطع الاثنين

بالنسبة للمدخلات alice,bob,cara في السطر 1 و bob,cara,dan في السطر 2، يكون المخرج هو:

Lapsed: alice
New: dan
Stayed: bob,cara

ورقة مرجعية

تُرجع subtracting العناصر الموجودة في المجموعة الأولى وليست في الثانية:

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

تُرجع symmetricDifference العناصر الموجودة في واحدة فقط من المجموعتين:

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

استخدم المجموعة كمرشح (filter) بـ O(1) باستخدام contains:

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"]

جرّب بنفسك

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

// TODO: اطبع Lapsed (current - renewed), New (renewed - current), Stayed (intersection)
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المنطق والتدفق