Leetcode 17 電話號碼的字母組合

2021-10-03 16:42:44 字數 1032 閱讀 6015

給定乙個僅包含數字 2-9 的字串,返回所有它能表示的字母組合。

給出數字到字母的對映如下(與**按鍵相同)。注意 1 不對應任何字母。

示例:

輸入:"23"

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

說明:儘管上面的答案是按字典序排列的,但是你可以任意選擇答案輸出的順序。

題解:使用回溯方法,每次呼叫dfs都傳入當前的子字串,字串在遞迴呼叫dfs的過程中越來越長,在字串長度等於digit長度時,將字串壓入vec,並return;

針對digits的每一位,都需要按照 數字—>字母的順序進行遍歷。

技巧:1)可以建立map,也可以用string的方式建立;

2) dfs 處理時,可以在函式內部處理當前的位,也可以處理下乙個字元對應的位,這將影響到第一次呼叫dfs,是迴圈呼叫,還是呼叫一次;

3)這個題也可以用佇列的方式解決,還是比較簡單點的,類似於bfs。

// other's code

class solution ;

vectorres;

if (digits.size() == 0) return res;

string s;

dfs(digits, 0, s, res,m);

return res;

}void dfs(string digits, int pos, string & s, vector&res, vector& m)

//獲取對應鍵盤的字母

string tmp = m[digits[pos] - '0'];

for (int i = 0; i < tmp.size(); i++)

return ;

}};

// my code

class solution

for(int i=0;i> &phone_map)}}

};

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