Дана строка, содержащая цифры от 2 до 9 включительно. Необходимо вернуть все возможные комбинации букв, которые могут соответствовать этим цифрам. Ответ может быть представлен в любом порядке.
Ниже приведено соответствие цифр и букв на телефоне. Обратите внимание, что цифра 1 не соответствует никаким буквам.
Цифра | Буквы |
---|---|
2 | abc |
3 | def |
4 | ghi |
5 | jkl |
6 | mno |
7 | pqrs |
8 | tuv |
9 | wxyz |
Пример 1:
Вход: "23"
Выход: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"]
Пример 2:
Вход: ""
Выход: []
Пример 3:
Вход: "2"
Выход: ["a", "b", "c"]
Для решения задачи мы можем использовать рекурсивный подход. Мы можем перебирать все буквы, соответствующие первой цифре в строке digits
и затем рекурсивно вызывать функцию letter_combinations
для оставшейся части строки digits
. Затем мы объединяем все возможные комбинации букв, полученные из рекурсивных вызовов, с комбинациями букв, полученными из первой цифры, и возвращаем их.
Рассмотрим пример вызова функции letter_combinations("23")
.
letter_combinations("3")
.letter_combinations("3")
мы начинаем с первой цифры "3". Согласно таблице выше, соответствующие буквы это "def".letter_combinations("")
.letter_combinations("")
мы не можем найти никаких дополнительных букв, поэтому мы возвращаем пустой список.