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

שאלת המשך

נניח שרוצים רק את הצירופים שהם מילים אמיתיות במילון. איך אפשר להימנע מבניית כל המחרוזות באורך n מתוך 4 אפשרויות לכל תו?

איפוס הקוד
def letterCombinations(digits):
    # כתבו כאן קוד

בדיקה #1

בדיקה #2

בדיקה #3

ארגומנט

digits = "23"

הפלט הצפוי

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