[leetcode] 17. Letter Combinations of a Phone Number
2023. 1. 3. 10:38ㆍ노트/Algorithm : 알고리즘
Given a string containing digits from 2-9 inclusive, return all possible letter combinations that the number could represent. Return the answer in any order.
A mapping of digits to letters (just like on the telephone buttons) is given below. Note that 1 does not map to any letters.
Example 1:
Input: digits = "23"
Output: ["ad","ae","af","bd","be","bf","cd","ce","cf"]
Example 2:
Input: digits = ""
Output: []
Example 3:
Input: digits = "2"
Output: ["a","b","c"]
Constraints:
- 0 <= digits.length <= 4
- digits[i] is a digit in the range ['2', '9'].
class Solution(object):
def letterCombinations(self, digits):
"""
:type digits: str
:rtype: List[str]
"""
def dfs(index, path):
# 끝까지 탐색하면 백트레킹
if len(path) == len(digits):
result.append(path)
for i in range(index, len(digits)):
for j in dic[digits[i]]:
dfs(i+1, path+j)
if not digits:
return []
dic = {"2": "abc", "3": "def", "4": "ghi", "5": "jkl",
"6": "mno", "7": "pqrs", "8": "tuv", "9": "wxyz"}
result = []
dfs(0, "")
return result
'노트 > Algorithm : 알고리즘' 카테고리의 다른 글
[leetcode] 39. Combination Sum (0) | 2023.02.08 |
---|---|
[leetcode] 77. Combinations (0) | 2023.02.06 |
[leetcode] 200. Number of Islands (0) | 2023.01.02 |
[leetcode] 347. Top K Frequent Elements (0) | 2022.12.20 |
[leetcode] 3. Longest Substring Without Repeating Characters (0) | 2022.12.19 |