17. 电话号码的字母组合
发布日期:2021-05-06 11:08:48 浏览次数:24 分类:精选文章

本文共 1295 字,大约阅读时间需要 4 分钟。

在这里插入图片描述

在这里插入图片描述

深度搜索

class Solution:    def letterCombinations(self, digits: str) -> List[str]:        ans = []        if not digits:            return ans        phoneMap = {               "2": "abc",            "3": "def",            "4": "ghi",            "5": "jkl",            "6": "mno",            "7": "pqrs",            "8": "tuv",            "9": "wxyz",}        def backtrack(position, sub_res):            if len(sub_res) == len(digits):                ans.append("".join(sub_res[:]))                return            for i in range(position, len(digits)):                position = position + 1                for j in range(len(phoneMap[digits[i]])):                    sub_res.append(phoneMap[digits[i]][j])                    backtrack(position, sub_res)                    sub_res.pop()                # position = position - 1        backtrack(0, [])        return ans

广度搜索

class Solution:    def letterCombinations(self, digits: str) -> List[str]:        if not digits: return []        phone = ['abc','def','ghi','jkl','mno','pqrs','tuv','wxyz']        queue = ['']  # 初始化队列        for digit in digits:            for _ in range(len(queue)):                tmp = queue.pop(0)                for letter in phone[int(digit)-2]:                    queue.append(tmp + letter)        return queue
上一篇:155. 最小栈
下一篇:13. 罗马数字转整数

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2025年04月06日 11时17分05秒