今日回顾-回溯算法-17. 电话号码的字母组合

注意点&感悟:

  • 我知道为什么,当初有些学霸说要复习了。
  • 因为有的知识点,你一遍没学会,自然要重复学习。所为复习,就是再学一遍。
  • 而简单的知识点,就不需要复习了,你已经明显知道自己掌握了,就不需要复习了。
  • 而预习呢?是为了,让提前学一遍,更多的是针对那些上课时间有限,以及学生等不及的情况下,主动去预习。
  • 预习更多的是为了充分利用上课时间,可以有针对性的听。(或者说,为了上课装逼,哈哈哈)
  • ==============
  • 说回来,复习挺好 的,能帮助你链接昨天的知识。

题目链接:17. 电话号码的字母组合

独立写的代码:

查看代码

class Solution:
    def __init__(self):
        self.letterMap=[
            "",
            "",
            "abc",
            "def",
            "ghi",
            "jkl",
            "mno",
            "pqrs",
            "tuv",
            "wxyz"
        ]
    def letterCombinations(self, digits: str) -> List[str]:
        # 补充个异常
        if len(digits)==0:
            return []
        res = []
        # index是独立集合的开始位置
        self.backtracking(digits,0,[],res)
        return res
        ...
    
    def backtracking(self,digits,index,path,res):
        if len(digits) == len(path):
            res.append("".join(path[:]))
            return
        # 因为有多个集合
        wight = self.letterMap[int(digits[index])]
        for i in range(len(wight)): # 遍历abc
            path.append(wight[i])
            self.backtracking(digits,index+1,path,res)
            path.pop()

截图:

posted @ 2024-01-29 10:57  77gg  阅读(20)  评论(0)    收藏  举报