oldby

题目描述:

方法一:回溯

class Solution: 
    def letterCombinations(self, digits): 
        """
        :type digits: str
        :rtype: List[str]
        """ 
        phone = {\'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 backtrack(combination, next_digits): 
            # if there is no more digits to check 
            if len(next_digits) == 0: 
                # the combination is done 
                output.append(combination) 
                # if there are still digits to check 
            else: 
                    # iterate over all letters which map 
                    # the next available digit 
                for letter in phone[next_digits[0]]: 
                    # append the current letter to the combination 
                    # and proceed to the next digits 
                    backtrack(combination + letter, next_digits[1:]) 
        output = [] 
        if digits: backtrack("", digits) 
        return output

二:

class Solution: 
    def letterCombinations(self, digits): 
        """
        :type digits: str
        :rtype: List[str]
        """ 
        m = {\'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 not digits: 
            return [] 
        ls1 = [\'\'] 
        for i in digits: 
            ls1 = [x + y for x in ls1 for y in m[i]] 
        return ls1

 

分类:

技术点:

相关文章:

  • 2021-09-29
  • 2021-04-25
  • 2021-06-02
  • 2021-12-02
  • 2021-10-09
猜你喜欢
  • 2021-09-29
  • 2021-09-29
  • 2021-09-29
  • 2021-09-29
  • 2021-09-29
  • 2021-09-29
  • 2021-09-29
  • 2021-09-29
相关资源
相似解决方案