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. Выбери по одной букве для каждой цифры, сохраняя порядок цифр, и получишь строку, которую можно набрать с помощью клавиш. Верни все такие строки, отсортированные в лексикографическом порядке (как в словаре).

Функция

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"]