一、17–电话号码的字母组合

代码:

class Solution(object):
    def letterCombinations(self, digits):
        """
        :type digits: str
        :rtype: List[str]
        """
        if len(digits) == 0:
            return []
        dic = {'2':'abc','3':'def','4':'ghi','5':'jkl','6':'mno','7':'pqrs','8':'tuv','9':'wxyz'}
        strs = [dic[i] for i in digits]
        stack = [ch for ch in strs[0]]
        for i in range(1,len(strs)):
            iters = len(stack)
            for _ in range(iters):
                temp = stack.pop(0)
                for ch in strs[i]:
                    stack.append(temp+ch)
        return stack

运行结果:
训练营第六天--实战递归

二、46-- 全排列

代码:

class Solution:
    def permute(self, nums):
        res = []
        if len(nums) <= 1:
            return [nums]
        else:
            for i in range(len(nums)):               
                temp = self.permute(nums[:i]+nums[i+1:])
                for j in range(len(temp)):
                    temp[j].append(nums[i])
                    res.append(temp[j])                   
        return res

执行结果:
训练营第六天--实战递归

相关文章: