[回溯系列] 组合总和+电话号码(day25)
生活随笔
收集整理的這篇文章主要介紹了
[回溯系列] 组合总和+电话号码(day25)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
LC216 組合總和3
找出所有相加之和為?n 的?k?個(gè)數(shù)的組合,且滿足下列條件:
1. 只使用數(shù)字1到9;2.?每個(gè)數(shù)字?最多使用一次。
返回所有可能的有效組合的列表 。組合可以以任何順序返回
LC17 電話號碼
給定一個(gè)僅包含數(shù)字?2-9?的字符串,返回所有它能表示的字母組合。答案可以按 任意順序 返回。
給出數(shù)字到字母的映射如下(與電話按鍵相同)。注意 1 不對應(yīng)任何字母。
給出兩個(gè)測試用例:
輸入:digits = "23" 輸出:["ad","ae","af","bd","be","bf","cd","ce","cf"] 輸入:digits = "" 輸出:[]思路:建立一個(gè)map,用數(shù)組或者用字典。第一次寫的時(shí)候沒考慮digits為空的情況,晚上再寫一遍還是一樣的錯(cuò)誤提示,??要注意哦。
class Solution:def letterCombinations(self, digits: str) -> List[str]:map = [ [],[],['a','b','c'], \['d','e','f'], ['g','h','i'],\['j','k','l'], ['m','n','o'], \['p','q','r','s'],['t','u', 'v'], \['w','x','y','z']]path, paths = [], []p = 0if not digits: return []if digits == '1': return []def backtracking(strs):nonlocal pif p == len(digits):paths.append(''.join(path))returnfor i in map[int(digits[p])]:path.append(i)p += 1backtracking(strs)p -= 1path.pop()backtracking(digits)return paths安慰自己:開始新的概念,做題老出錯(cuò),需要調(diào)試總是難免的,加油。
總結(jié)
以上是生活随笔為你收集整理的[回溯系列] 组合总和+电话号码(day25)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2020年,这个算法团队都干了啥?
- 下一篇: 预警“立功”|用小米手机真的能救命