【c++刷題學習筆記目錄】【c++百萬併發網路通訊-筆記目錄】
回溯三步法、字串到字母的對映
同樣是使用【演算法套路】-【回溯篇】【回溯三步法】中提到的回溯三步法
但是剛開始使用了unordered_map來進行數字->字母的對映,所以略顯麻煩,看到【**隨想錄】大佬的題解回溯演算法:**號碼的字母組合,原來可以使用string陣列來代替unordered_map
1、首先就是數字與字母的對映關係
const string lettermap[10]
=;
2、其次就是回溯三步法
class
solution
; vector result;
string path;
void backtracking (
const string& digits,
int index)
int digit = digits[index]
-'0'
;//將當前字元形式的數字轉為整型
string letters = lettermap[digit]
;//取當前數字對應的字母字串
for(
char letter : letters)
}public
: vector lettercombinations (string digits)
};
注意路徑記錄語句result.push_back(path);
這一句其實發生在最後一次路徑改變語句path.push_back(letter);
之後 力扣17 電話號碼的字母組合
原題 解法1 2都是大佬寫的,題解鏈結 1 回溯 1 class solution 2def lettercombinations self,digits str list str 3if not digits return 45 phone 1314 defbacktrack conbinatio...
力扣17題 電話號碼的字母組合
給定乙個僅包含數字 2 9 的字串,返回所有它能表示的字母組合。給出數字到字母的對映如下 與 按鍵相同 注意 1 不對應任何字母。示例 輸入 23 輸出 ad ae af bd be bf cd ce cf 說明 儘管上面的答案是按字典序排列的,但是你可以任意選擇答案輸出的順序。因為給出的號碼字串長...
17 電話號碼的字母組合
給定乙個數字字串,返回數字所有可能表示的字母組合。下面給出數字到字母的對映 和 號碼一樣 輸入 數字字串 23 輸出 ad ae af bd be bf cd ce cf 思路1 採用迭代的方法。class solution if digits.empty return vector vectorr...