17. Letter Combinations of a Phone Number

class Solution(object):
    def letterCombinations(self, digits):
        """
        :type digits: str
        :rtype: List[str]
        """
        map = {"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"]}
        if len(digits) == 0:
            return []
        elif len(digits) == 1:
            mylist = []
            for i in map[digits]:
                mylist.append(i)
            return mylist
        else:
            newlist = []
            for i in map[digits[0]]:
                for j in self.letterCombinations(digits[1:]):
                    newlist.append(i+j)
            return newlist

if __name__ == "__main__":
    answer=Solution()
    print answer.letterCombinations("5678")

blogroll

social