###17. Letter Combinations of a Phone Number
题目:
https://leetcode.com/problems/letter-combinations-of-a-phone-number/
难度:
Medium
思路:
- hash table一个,用来对应digit -> letter
- s用来记录结果,每次从digits里面去一个,然后寻找其可能的char,加到s中,digits长度减小
- digits长度为0时候,把它加入结果
class Solution(object):
def letterCombinations(self, digits):
"""
:type digits: str
:rtype: List[str]
"""
if digits == "": return []
self.res = []
def letterGenerate(digits, curStr):
table = {"2":"abc","3":"def","4":"ghi","5":"jkl",
"6":"mno","7":"pqrs","8":"tuv","9":"wxyz"}
if digits == "":
self.res += [curStr]
else:
for char in table[digits[0]]:
letterGenerate(digits[1:],curStr + char)
letterGenerate(digits, "")
return self.res
这个很像permutation的变体。