Given a string containing digits from 2-9 inclusive, return all possible letter combinations that the number could represent.
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: "23"
Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
class Solution:
def letterCombinations(self, digits: str) -> List[str]:
dic = {
"2":['a','b','c'],
"3":['d','e','f'],
"4":['g','h','i'],
"5":['j','k','l'],
"6":['m','n','o'],
"7":['p','q','r','s'],
'8':['t','u','v'],
"9":['w','x','y','z']
}
def loop(res,str1):
if len(str1) == 0:
output.append (res)
else:
for i in dic[str1[0]]:
loop(res+i,str1[1:])
output = []
if digits:
loop("",digits)
return output