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

Letter Combinations of a Phone Number

متوسطالتراجعpython iconjava iconcpp iconc iconjs icon+10

على لوحة مفاتيح الهاتف، يحمل كل رقم من 2 إلى 9 بضعة أحرف: 2 هو abc، و3 هو def، و4 هو ghi، و5 هو jkl، و6 هو mno، و7 هو pqrs، و8 هو tuv، و9 هو wxyz.

تحصل على سلسلة digits. اختر حرفًا واحدًا لكل رقم، مع الحفاظ على ترتيب الأرقام، فتحصل على سلسلة يمكن كتابتها باستخدام المفاتيح. أعد كل هذه السلاسل مرتبة ترتيبًا معجميًا (ترتيب القاموس). بالنسبة إلى "23"، هناك تسع سلاسل، من "ad" إلى "cf".

الدالة

letterCombinations(digits: string) → string-array
digitsstring
الأرقام التي تم الضغط عليها، وكلٌّ منها من 2 إلى 9
تُرجعstring-array
كل سلسلة يمكن للمفاتيح كتابتها، بترتيب معجمي

القيود

  • 1 ≤ digits.length ≤ 4
  • كل محرف في digits هو رقم من 2 إلى 9.
  • تحتوي الإجابة على 256 سلسلة على الأكثر.

أمثلة

المدخلات
digits = "23"
المخرجات
["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]
الشرح
يوفّر الرقم 2 الأحرف a وb وc، ويوفّر الرقم 3 الأحرف d وe وf. يقترن كل حرف أول بكل حرف ثانٍ، لذا توجد 3 × 3 = 9 سلاسل، ويؤدي سردها مع تغيّر الحرف الأول بأبطأ وتيرة إلى إبقائها مرتبة.

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

challenge icon

سؤال إضافي

لنفترض أنك لا تريد إلا التركيبات التي تُشكّل كلمات حقيقية في القاموس. كيف يمكنك تجنّب إنشاء جميع السلاسل النصية البالغ عددها 4^n أولًا؟

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

الحالة 1

الحالة 2

الحالة 3

المدخلات

digits = "23"

المتوقع

["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]