LeetCode17 電話號碼的字母組合

2022-06-08 19:03:17 字數 1071 閱讀 5487

給定乙個僅包含數字2-9的字串,返回所有它能表示的字母組合。給出數字到字母的對映如下(與**按鍵相同)。注意 1 不對應任何字母。

輸入:"23"

輸出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].

本題目實質依舊是組合問題,但是與之前兩道組合 77題組合、216題組合總和||| 有些不同,它是由多個集合來求解組合。腦中構建搜尋樹形狀:for迴圈水平搜尋每個集合元素,遞迴縱向搜尋,深度就是集合的個數,如23就就是數字2對應字母的集合、數字3對應字母的集合,所以深度就是2。注意:因為每個集合所包含元素的個數不等,故應該在for迴圈 前確定元素個數(**22—23行)

縱向搜尋多個集合

1

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 };

1.多集合的組合問題中index與單集合的組合問題中的index含義不一樣,前者表示是從第幾個集合取數,也就是目前到達的遞迴深度。而後者表示單個集合的取數字置。

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...