المجموعات للتحقق من العضوية وإزالة التكرار
اختبار الوجود في زمن ثابت
المجموعات للتحقق من العضوية وإزالة التكرار درس مجاني في Coding Interview Prep على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Coding Interview Prep، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Coding Interview Prep 4 دروس في المجموع.
ما الذي توفره المجموعة
تخزّن المجموعة عناصر فريدة من دون ترتيب، وتكمن قوتها الحقيقية في الإجابة عن سؤال «هل هذا موجود؟» في زمن ثابت تقريبًا. ⚡
لماذا لا نستخدم قائمة فحسب
يتطلب التحقق من العضوية في قائمة فحص كل عنصر، لذا يكون تعقيده O(n). أما المجموعة فتُجري تجزئة للقيمة وتقفز مباشرةً إلى الخانة بدلًا من ذلك.
أنشئ مجموعة
أنشئها باستخدام الأقواس المعقوفة أو الاستدعاء set(). ويجب أن تستخدم set() للمجموعة الفارغة، لأن الأقواس المعقوفة المجردة تنشئ قاموسًا.
seen = set()
vowels = {'a', 'e', 'i', 'o', 'u'}اختبار العضوية
استخدم الكلمة المفتاحية in للسؤال عما إذا كانت قيمة ما موجودة. ويكون هذا البحث سريعًا في المجموعة، وهو ما يجعل استخدامها جديرًا بالاهتمام.
if x in seen:
print('already saw it')إضافة العناصر
أضف قيمة باستخدام add. ولا يغيّر تكرار القيمة نفسها شيئًا، لذا تحافظ المجموعة بهدوء على فرادة جميع العناصر نيابةً عنك.
seen.add(x)إزالة التكرارات فورًا
مرّر أي كائن قابل للتكرار إلى set()، فتختفي التكرارات في مرور واحد. وهذه أقصر طريقة لإزالة التكرارات من إدخال المسابقة.
unique = set(nums)احسب القيم الفريدة بسرعة
من المهام الشائعة: «كم عدد القيم الفريدة؟». غلّف البيانات في مجموعة واحسب طولها في سطر واحد.
distinct_count = len(set(nums))تتبّع ما رأيته
أنشئ مجموعة أثناء المرور لاكتشاف أول تكرار. فإذا كانت قيمة ما موجودةً في المجموعة مسبقًا، فقد عثرت على تكرار في الحال.
for v in nums:
if v in seen:
return True
seen.add(v)حساب المجموعات مجانًا
تدعم المجموعات التقاطع والاتحاد والفرق مباشرةً. وتصبح مقارنة مجموعتين عمليةً واحدة بدلًا من حلقات متداخلة.
common = a & b
only_a = a - bالإزالة والتجاهل
استخدم discard للحذف بأمان حتى عند فقدان القيمة، بينما يرفع remove خطأً عند غياب المفتاح. اختر ما يطابق نيتك.
seen.discard(x)العناصر القابلة للتجزئة فقط
تحتاج المجموعات إلى عناصر قابلة للتجزئة، لذلك لا يمكن وضع القوائم فيها، بينما يمكن وضع الصفوف. حوّل القائمة إلى صف أولًا إذا احتجت إلى تخزينها.
grid_seen = set()
grid_seen.add((row, col))تحقق سريع
تحتاج إلى معرفة عدد الأرقام المختلفة الموجودة في قائمة.
مراجعة
توفر المجموعة فحص عضوية بزمن O(1)، وإزالة فورية للتكرارات، وطريقة سهلة لإيجاد التقاطع أو الفرق. استخدمها كلما كان سؤالك هو: «هل صادفت هذه القيمة من قبل؟». 🚀
الأسئلة الشائعة
هل درس «المجموعات للتحقق من العضوية وإزالة التكرار» مجاني؟
نعم — نص درس «المجموعات للتحقق من العضوية وإزالة التكرار» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Coding Interview Prep، انتقل إلى CoddyKit PRO. تتضمن دورة Coding Interview Prep 4 دروس في المجموع.
ماذا ستتعلم في «المجموعات للتحقق من العضوية وإزالة التكرار»؟
اختبار الوجود في زمن ثابت تتمرن على Coding Interview Prep مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Coding Interview Prep؟
لا تُشترط خبرة سابقة. Coding Interview Prep على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «المجموعات للتحقق من العضوية وإزالة التكرار»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Coding Interview Prep هذا؟
نعم. كل درس في Coding Interview Prep يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- المجموعات للتحقق من العضوية وإزالة التكرار
- القواميس كجداول بحث
- Counter وdefaultdict عمليًا
- التجميع والتصنيف باستخدام Map