LeetCode 17. 电话号码的字母组合(Medium)

在这里插入图片描述
题目链接

题解

  1. 电话号码的字母组合

思路

在这里插入图片描述
在这里插入图片描述

代码

class Solution:
    ### 0127 回溯法(44 ms,14.9 MB)
    def letterCombinations(self, digits: str) -> List[str]:
        if not digits:
            return []

        def backtrace(idx):
            # 若当前长度以达到数字的长度,则进行组合
            if idx == len(digits):
                res.append(''.join(combs))
            else:
                for c in num2str[digits[idx]]:
                    combs.append(c)    # 添加当前位字符
                    backtrace(idx + 1) # 添加下一位字符
                    combs.pop()        # 去掉上一个字符,回溯

        num2str = {
            '2': 'abc', '3': 'def', '4': 'ghi', '5': 'jkl', 
            '6': 'mno', '7': 'pqrs', '8': 'tuv', '9': 'wxyz', 
        }

        combs, res = [], []
        
        backtrace(0)

        return res
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页