給定乙個僅包含數字2-9
的字串,返回所有它能表示的字母組合。給出數字到字母的對映如下(與**按鍵相同)。注意 1 不對應任何字母。
輸入:"23"本題目實質依舊是組合問題,但是與之前兩道組合 77題組合、216題組合總和||| 有些不同,它是由多個集合來求解組合。腦中構建搜尋樹形狀:for迴圈水平搜尋每個集合元素,遞迴縱向搜尋,深度就是集合的個數,如23就就是數字2對應字母的集合、數字3對應字母的集合,所以深度就是2。注意:因為每個集合所包含元素的個數不等,故應該在for迴圈 前確定元素個數(**22—23行)輸出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].
縱向搜尋多個集合
11.多集合的組合問題中index與單集合的組合問題中的index含義不一樣,前者表示是從第幾個集合取數,也就是目前到達的遞迴深度。而後者表示單個集合的取數字置。class
solution ;
17void backtracking(string digits,int
index)
22int digit = digits[index] - '
0';//
將每個字元轉換為整型好做雜湊
23string letters = lettermap[digit];//
取出對應數字的字串
24for(int i = 0;i < letters.length();i++)29}
30 vector lettercombinations(string
digits)
35 };
2.數字和多個字母如何做對映?其本質思想**於雜湊,用字串陣列做雜湊,陣列下標索引代表數字,與之對應的每個字母組合成字串存於該位置。
Leetcode17 電話號碼組合
leetcode17 號碼組合 給定乙個僅包含數字 2 9 的字串,返回所有它能表示的字母組合。給出數字到字母的對映如下 與 按鍵相同 注意 1 不對應任何字母。示例 輸入 23 輸出 ad ae af bd be bf cd ce cf 思路 大家都能想到,我每次從裡面選擇乙個數,然後把所有的可能...
leetcode 17 電話號碼的字母組合
題目描述 給定乙個僅包含數字2 9的字串,返回所有它能表示的字母組合。給出數字到字母的對映如下 與 按鍵相同 注意 1 不對應任何字母。示例 輸入 23 輸出 ad ae af bd be bf cd ce cf 實現 string num 10 class solution private tem...
LeetCode17電話號碼的字母組合
給定乙個僅包含數字2 9的字串,返回所有它能表示的字母組合。給出數字到字母的對映如下 與 按鍵相同 注意 1 不對應任何字母。示例 輸入 23 輸出 ad ae af bd be bf cd ce cf class solution def lettercombinations self,digit...