الطرح والفرق المتماثل
جزء من قسم المنطق والتدفق في رحلة 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"]التحدي
سهلاقرأ سطرين من المدخلات، كل منهما عبارة عن قائمة من السلاسل النصية المفصولة بفاصلة. تعامل معهما كـ currentMembers و renewedMembers على التوالي.
اطبع ثلاثة أسطر، كل منها مرتب أبجدياً ومدمج بـ , (أو فارغاً في حال عدم وجود أي منها):
Lapsed: <...>> current ناقص renewedNew: <...>> renewed ناقص currentStayed: <...>> تقاطع الاثنين
بالنسبة للمدخلات alice,bob,cara في السطر 1 و bob,cara,dan في السطر 2، يكون المخرج هو:
Lapsed: alice
New: dan
Stayed: bob,caraجرّب بنفسك
let current = Set(readLine()!.components(separatedBy: ","))
let renewed = Set(readLine()!.components(separatedBy: ","))
// TODO: اطبع Lapsed (current - renewed), New (renewed - current), Stayed (intersection)
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق والتدفق
1النصوص بعمق
العد والفهارسحالة الأحرف وإزالة الفراغاتالبحث في النصوصتقسيم ودمج النصوصاستبدال النصوص الفرعيةمراجعة - التحقق من اسم المستخدم4المجموعات
إنشاء المجموعاتالاتحاد والتقاطعالطرح والفرق المتماثلالمجموعات الجزئية والشاملةمراجعة - تصفية الـ Tag7مشروع - متتبع العادات
نظرة عامة على المشروعتحديد كمكتمل2النطاقات والخطوات
المغلقة مقابل نصف المفتوحةالخطوة (Stride)دوال النطاقاتالنطاقات في Switchملخص - شبكة التقويم5الدوال من الرتبة العليا - الجزء الأول
MapFilterReduceربط Map و Filter و Reduceمراجعة - إحصائيات الكلماتتدرّب بنفسك: Playground لـ Swift