المسارات
/
MoonScript
MoonScript
/
التمارين
/
المسافة النسبية
المسافة النسبية

المسافة النسبية

متوسط

مقدمة

لقد تم تعيينك لتطوير Noble Knots، أحدث تطبيقات المواعدة وأكثرها رواجًا للنبلاء! مع قرون من الزيجات المتداخلة بين العائلات الملكية، أصبحت الأمور… معقدة. لتجنّب أي مواقف من نوع عفوًا، نحن توأمان، فإن مهمتك هي بناء نظام يتحقق من مدى قرابة شخصين.

استُلهم Noble Knots فكرته من تطبيق آيسلندا «Islendinga-App»، الذي تسنده قاعدة بيانات تتعقّب كل صلات القرابة المعروفة بين الآيسلنديين منذ زمن استيطان آيسلندا. وستحدّد خوارزميتك درجة القرابة بين أي شخصين في شجرة العائلة المالكة.

فهل سيساعد تطبيقك في تتويج شريك مثالي؟

التعليمات

مهمتك هي تحديد درجة الانفصال بين شخصين في شجرة عائلة. هذا مشابه لفكرة شائعة في الثقافة الشعبية مفادها أن كل ممثل في هوليوود يقع ضمن ست درجات من كيفن بيكون.

  • ستحصل على مدخل يتضمن أسماء جميع الوالدين وأبنائهم.
  • كل اسم فريد، و_قد_ يكون للطفل والد واحد أو والدان.
  • تُعرَّف درجة الانفصال بأنها أقل عدد من الصلات بين شخص وآخر.
  • إذا لم تكن هناك صلة بين شخصين، فأرجِع قيمة تعبّر عن "no known relationship". يرجى الرجوع إلى حالات الاختبار لمعرفة التنفيذ الفعلي.

مثال

بالنظر إلى شجرة العائلة التالية:

      ┌──────────┐            ┌──────────┐     ┌───────────┐
      │  Helena  │            │  Erdős   ├─────┤  Shusaku  │
      └───┬───┬──┘            └─────┬────┘     └────┬──────┘
      ┌───┘   └───────┐             └───────┬───────┘
┌─────┴────┐     ┌────┴───┐           ┌─────┴────┐
│   Isla   ├─────┤ Tariq  │           │   Kevin  │
└────┬─────┘     └────┬───┘           └──────────┘
     │                │
┌────┴────┐      ┌────┴───┐
│   Uma   │      │ Morphy │
└─────────┘      └────────┘

درجة الانفصال بين Tariq و Uma هي 2 (Tariq → Isla → Uma). لا توجد علاقة معروفة بين Isla و Kevin، إذ لا توجد صلة في البيانات المعطاة. درجة الانفصال بين Uma و Isla هي 1.

Note

Isla و Tariq شقيقان، ودرجة الانفصال بينهما 1. وبالمثل، سيبلغ هذا التنفيذ عن درجة انفصال مقدارها 2 بينك وبين عمّك.


المصدر

vaengيفتح الرابط في نافذة أو علامة تبويب جديدة
تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
MoonScript Exercism

مستعد لبدء المسافة النسبية؟

سجّل في Exercism لتتعلّم وتتقن MoonScript عبر 126 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.