classSolution:defletterCombinations(self,digits:str)-> List[str]:ifnot digits:return[] res =[""]#初始结果集,有一个空串元素 v =["","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"]for i inrange(len(digits)):#对每位数字 dig =int(digits[i])#先将字符串转为整数 candidate = v[dig]#候选集 newRes =[]#新结果集,初始为空#笛卡尔积for j in res:for k in candidate: newRes.append(j + k)#候选集每个元素添加到原结果后面,得到新结果 res = newResreturn res
for s in itertools.product('abc', 'def'):
print(s)
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])]
return ["".join(s) for s in itertools.product(*['abc', 'def'])]
return ["".join(s) for s in itertools.product(['abc', 'def'])]