Menu
CoddyTech
flag Ar iconالعربيةdown icon

Alien Dictionary

تُرتَّب قائمة من الكلمات وفق أبجدية لا تعرفها: الأحرف الإنجليزية الصغيرة الـ 26 بترتيب سري ما. تُقارَن الكلمات بالطريقة المعتادة. يحدد أول موضع تختلف فيه كلمتان أيَّ الحرفين يأتي أولًا في الأبجدية، وإذا كانت إحدى الكلمتين بدايةً للأخرى، فتأتي الكلمة الأقصر أولًا.

أعِد الأحرف التي تظهر في الكلمات، في سلسلة واحدة مرتبة أبجديًا. إذا كانت هناك عدة ترتيبات تلائم القائمة، فأعِد الترتيب الذي يأتي أولًا وفق الترتيب القاموسي المعتاد. إذا لم يلائم القائمة أي ترتيب، فأعِد "invalid".

الدالة

alienOrder(words: string-array) → string
wordsstring-array
الكلمات، مرتبة حسب الأبجدية المجهولة
تُرجعstring
الأحرف بأصغر ترتيب يناسب، أو "invalid"

القيود

  • 1 ≤ words.length ≤ 5000
  • 1 ≤ words[i].length ≤ 10
  • تتكوّن كل كلمة من أحرف إنجليزية صغيرة فقط.
  • قد تظهر الكلمة نفسها أكثر من مرة.

أمثلة

المدخلات
words = ["tea", "ten", "ate", "act", "cat"]
المخرجات
"etacn"
الشرح
يختلف tea وten أولًا عند a وn، لذا يأتي a قبل n. وتُبيّن الأزواج الأخرى أن t يأتي قبل a، وt قبل c، وa قبل c. لا توجد قاعدة تذكر e، لذا يضعه الترتيب الأصغر أولًا، ثم t، ثم a، ثم c وn، إذ لا قيود عليهما عندئذ، مع وضع c أولًا.

lock icon+20 اختبارات مخفية عند الإرسال

challenge icon

سؤال إضافي

كيف يمكنك معرفة ما إذا كان ترتيب الملاءمة هو الترتيب الوحيد؟

إعادة ضبط الشيفرة
def alienOrder(words):
    # اكتب الكود هنا
حالات الاختبار

الحالة 1

الحالة 2

الحالة 3

المدخلات

words = ["tea", "ten", "ate", "act", "cat"]

المتوقع

"etacn"