class Solution:
def letterCombinations(self, digits: str) -> List[str]:
if not digits: return []
res = [""] #初始结果集,有一个空串元素
v = ["", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"]
for i in range(len(digits)): #对每位数字
dig = int(digits[i]) #先将字符串转为整数
candidate = v[dig] #候选集
newRes = [] #新结果集,初始为空
#笛卡尔积
for j in res:
for k in candidate:
newRes.append(j + k) #候选集每个元素添加到原结果后面,得到新结果
res = newRes
return res
class Solution:
def letterCombinations(self, digits: str) -> List[str]:
if not digits: return []
res = []
letters = ["", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"] #将所有数字对应的字符分别存入
return ["".join(s) for s in itertools.product(*[letters[int(dig)] for dig in digits])]