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 digit to letters (just like on the telephone buttons) is given below. Note that 1 does not map to any letters.
Input: digits = "23"
Output: ["ad","ae","af","bd","be","bf","cd","ce","cf"]
Input: digits = ""
Output: []
Input: digits = "2"
Output: ["a","b","c"]
제한사항
- 0 ≤ digits.length ≤ 4
- digits[i] is a digit in the range ['2', '9'].
class Solution:
def letterCombinations(self, digits: str) -> List[str]:
if not digits : return []
tel = ['###', '###','abc', 'def', 'ghi', 'jkl','mno', 'pqrs', 'tuv','wxyz']# 0,1번 인덱스 사용 X
length = len(digits)
ans = []
def DFS(i, curS: str):
if len(curS) == length:
ans.append(curS)
for idx in range(i,length):
for c in tel[int(digits[idx])]:
curS += c
DFS(idx+1,curS)
curS = curS[:-1] #맨뒤 제거
DFS(0,"")
return ans
단순 DFS문제입니다.