Menu
CoddyTech

Letter Combinations of a Phone Number

На телефонной клавиатуре каждой цифре от 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

Дополнительный вопрос

Предположим, вам нужны только сочетания, которые являются настоящими словами из словаря. Как избежать предварительного создания всех 4^n строк?

Сбросить код
def letterCombinations(digits):
    # Напишите код здесь
Тестовые случаи

Случай 1

Случай 2

Случай 3

Ввод

digits = "23"

Ожидается

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