Menu
CoddyTech

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. وتُرتّب الأزواج الأخرى t قبل a، وt قبل c، وa قبل c. لا تذكر أي قاعدة الحرف e، لذا يبدأ الترتيب الأصغر به: e، ثم t، ثم a، ثم c، ثم n.
challenge icon

سؤال إضافي

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

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

اختبار #1

اختبار #2

اختبار #3

وسيط

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

الإخراج المتوقع

"etacn"