Skip to content

Latest commit

 

History

History
44 lines (30 loc) · 1.02 KB

017._letter_combinations_of_a_phone_number.md

File metadata and controls

44 lines (30 loc) · 1.02 KB

###17. Letter Combinations of a Phone Number

题目:

https://leetcode.com/problems/letter-combinations-of-a-phone-number/

难度:

Medium

思路:

  • hash table一个,用来对应digit -> letter
  • s用来记录结果,每次从digits里面去一个,然后寻找其可能的char,加到s中,digits长度减小
  • digits长度为0时候,把它加入结果
class Solution(object):
    def letterCombinations(self, digits):
        """
        :type digits: str
        :rtype: List[str]
        """
        if digits == "": return []
        self.res = []
        def letterGenerate(digits, curStr):
            table = {"2":"abc","3":"def","4":"ghi","5":"jkl",
                    "6":"mno","7":"pqrs","8":"tuv","9":"wxyz"}
            if digits == "":
                self.res += [curStr]
            else:
                for char in table[digits[0]]:
                    letterGenerate(digits[1:],curStr + char)

        letterGenerate(digits, "")
        return self.res

这个很像permutation的变体。