Menu
CoddyTech

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. اختر حرفًا واحدًا لكل رقم، مع الحفاظ على ترتيب الأرقام، فتحصل على سلسلة نصية يمكن للمفاتيح كتابتها. أعد كل هذه السلاسل النصية، مرتبة ترتيبًا معجميًا (ترتيب القاموس).

الدالة

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

القيود

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

أمثلة

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

سؤال إضافي

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

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

اختبار #1

اختبار #2

اختبار #3

وسيط

digits = "23"

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

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