Although the above answer is in lexicographical order, your answer could be in any order you want.
这道题用的是BFS的方法,枚举每个组合。 复杂度是NP Hard 随着数字的增加,subarray增加。
代码如下:
class Solution: # @return a list of strings, [s1, s2] def letterCombinations(self, digits): dict={'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 dfs(num,res,substr): if num==len(digits): res.append(substr) return for letter in dict[digits[num]]: dfs(num+1,res,substr+letter) solution=[] dfs(0,solution,"") return solution