天天看點

leetcode: 17. Letter Combinations of a Phone Number

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.           

複制

leetcode: 17. Letter Combinations of a Phone Number

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']           

複制