Problem
# Given a digit string,
# 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.
#
# Input:Digit string "23"
# Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
#
# Note:
# Although the above answer is in lexicographical order,
# your answer could be in any order you want.
複制
AC
疊代:
class Solution():
def letterCombinations(self, x):
if not x:
return []
table = ['', '', 'abc', 'def', 'ghi', 'jkl', 'mno', 'pqrs', 'tuv', 'wxyz']
res = [""]
for ele in x:
tmp = [i+j for i in res for j in table[int(ele)]]
res = tmp
return res
if __name__ == "__main__":
assert Solution().letterCombinations("23") == ['ad', 'ae', 'af', 'bd', 'be', 'bf', 'cd', 'ce', 'cf']
複制