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. בחר אות אחת לכל ספרה, תוך שמירה על סדר הספרות, ותקבל מחרוזת אחת שהמקשים יכולים להקליד. החזר את כל המחרוזות האפשריות, ממוינות בסדר לקסיקוגרפי (מילוני). עבור "23" יש תשע מחרוזות כאלה, מ־"ad" עד "cf".

פונקציה

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 מחרוזות, ורישום שלהן כשהאות הראשונה משתנה לאט ביותר שומר על הסדר שלהן.

lock icon+14 בדיקות נסתרות בשליחה

challenge icon

שאלת המשך

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

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

מקרה 1

מקרה 2

מקרה 3

קלט

digits = "23"

צפוי

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