أسئلة مقابلة DSA
بقلم Aaron Cao · آخر تحديث

تعيد مقابلات DSA استخدام مجموعة صغيرة من الأنماط بدلاً من مئات المسائل الفريدة. توقّع المصفوفات والسلاسل النصية، وتقنيتَي two pointers و sliding window، والتجزئة (hashing)، والبحث الثنائي، والأشجار والرسوم البيانية، والأكوام (heap)، والبرمجة الديناميكية، وتُطرح كمسائل مباشرة يُتوقّع منك شرحها بصوت عالٍ أثناء حلها.
ما الذي تختبره مقابلة DSA فعليًا؟
لقد حللت بضع مئات من المسائل ولا تزال تشعر بأنك غير مستعد، وهذا عادةً يعني أنك تدربت على النصف الخاطئ من التمرين. يوضح هذا القسم ما الذي يُقيَّم، حتى يتماشى تدريبك معه.
تقيس الجولة المباشرة في هياكل البيانات والخوارزميات أربعة أمور في آن واحد: هل تتعرّف على النمط الذي تنتمي إليه المسألة، وهل يمكنك صياغة الأسلوب قبل كتابة الكود، وهل التنفيذ صحيح عند الحالات الحدية، وهل يمكنك التفكير بصوت عالٍ في التعقيد. يُحسّن المرشحون النقطة الثالثة ويهملون الثانية، ثم يُخصَم من تقييمهم بسبب حل صحيح وصل دون شرح.
خطوة التعرّف هي سبب تفوّق التدرب على الأنماط على الكمّ. المسائل نادرًا ما تكون جديدة حقًا؛ إنها إعادة تركيب. بمجرد أن تتمكن من قول هذه sliding window فوق خريطة تكرارات خلال الدقيقة الأولى، يصبح الباقي مجرد تنفيذ. توجد بنوك أسئلة ذات صلة حسب اللغة والدور في مركز أسئلة المقابلات.
ما الأنماط التي يجب أن تعرفها؟
هذه الأنماط تمثل معظم ما يُسأل عنه. تعلّم التعرّف على الإشارة التي تدل على كل واحد منها.
- Two pointers. إدخال مُرتّب، مجاميع الأزواج، إعادة الترتيب في المكان (in-place)، فحوصات المتناظرات.
- Sliding window. أطول أو أقصر مصفوفة فرعية متجاورة ضمن قيد معيّن.
- العدّ باستخدام hash map. الجُناس، التكرارات، مقارنات التكرار، أول عنصر فريد.
- البحث الثنائي. المصفوفات المرتّبة، والبحث في فضاء الإجابات عندما لا تكون المصفوفة مرتّبة.
- البحث بالعرض أولاً وبالعمق أولاً. الأشجار، الشبكات، المكوّنات المتصلة، أقصر مسار غير موزون.
- الكومة وطابور الأولوية. مسائل top-k، دمج التدفقات المرتّبة، الوسيط الجاري.
- الفواصل الزمنية. الدمج، الإدراج، واكتشاف التداخل بعد الترتيب حسب نقطة البداية.
- البرمجة الديناميكية. مسائل فرعية متداخلة: صعود الدرج، فكة العملات، مسافة التحرير، المتتاليات الفرعية.
- Backtracking. التباديل، التوافيق، المجموعات الجزئية، ألغاز القيود.
- خوارزميات الرسوم البيانية. الترتيب الطوبولوجي، union find، أقصر مسار موزون.
ما الأسئلة التي تظهر حسب الموضوع؟
أمثلة تمثيلية، صيغت بالطريقة التي يصوغها بها المحاورون:
- ابحث عن رقمين في مصفوفة يكون مجموعهما هدفًا معيّنًا، ثم افعل ذلك دون مساحة إضافية.
- أعد طول أطول سلسلة فرعية دون تكرار الأحرف.
- بمصفوفة مرتّبة تم تدويرها، ابحث عن هدف في زمن لوغاريتمي.
- ادمج الفواصل الزمنية المتداخلة واشرح لماذا يستحق الترتيب تكلفته.
- اعكس شجرة ثنائية، ثم أوجد أقصى عمق لها.
- تحقّق من شجرة بحث ثنائية، وقل ما الذي يفوّته الفحص الساذج.
- عدّ الجزر في شبكة، ثم قل كيف ستتعامل مع شبكة أكبر من أن تسعها الذاكرة.
- ابحث عن أكثر k عنصرًا تكرارًا وبرّر اختيارك لهيكل البيانات.
- احسب الحد الأدنى من العملات المعدنية لمبلغ ما، واذكر علاقة التكرار.
- اكتشف دورة في قائمة مترابطة، ثم أعد العقدة التي تبدأ عندها.
- سلسِل وفكّ تسلسل شجرة ثنائية.
- بمعرفة متطلبات المقررات المسبقة، قرّر ما إذا كان الجدول ممكنًا.
يتلقى خريج جديد يُجري مقابلة لدور في الواجهة الخلفية مسألة السلسلة الفرعية ويبدأ الكتابة فورًا. الكود صحيح تقريبًا، لكن المحاور يقضي الجولة يسأل عمّا يفعله الكود، وتعكس الدرجة الصمت لا الخطأ. المرشح الذي يقضي أربعين ثانية في قول نافذة فوق خريطة أحرف، أوسّع لليمين، أضيّق لليسار عند تكرار، أتتبع الحد الأقصى يكون قد تجاوز بالفعل الجزء الأصعب في تعويضه.
كيف تتدرب على التحدث أثناء الحل؟
الحل الصامت يبني ردّ الفعل الخاطئ. تتطلب الجولة المباشرة السرد والكود في آن واحد، وهذه مهارة منفصلة عن كل منهما بمفرده.
غيّر التمرين، لا مجموعة المسائل. قبل أن تكتب أي شيء، قل بصوت عالٍ النمط والأسلوب والتعقيد المتوقع. اكتب الكود بينما تواصل السرد. عندما تنتهي، اذكر التعقيد مرة أخرى وسمِّ حالة حدية واحدة تعاملت معها وأخرى كنت ستسأل عنها. القيام بهذا على عشر مسائل يبني قدرة أكبر على إجراء المقابلات من حل خمسين مسألة صامتًا.
توفر جلسة مقابلة تجريبية أسئلة المتابعة، وهي الجزء الذي لا يمكن التدرب عليه بمفردك، وتمنحك تسجيلًا لسردك الخاص لمراجعته. ينطبق حدٌّ واحد صادق في كل مكان: تقييم برمجي مكتوب داخل المتصفح مع مراقبة ليس محادثة، ولا مكان فيه لأي مساعد مباشر. يغطي مركز أنواع المقابلات صيغ البرمجة المباشرة والصيغ المؤتمتة.