LeetCode 17 電話號碼的字母組合

2021-10-13 02:55:52 字數 1004 閱讀 6085

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

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

這道題不太難,因為不需要考慮不合法的情況。這道題類似於數學中的全排列問題,輸入有幾個字元,也就是按了幾下鍵盤,結果中的每個字串就多長。最終的結果是字元0對應的字母長度乘上字元1對應的字母長度乘上字元2對應的…即:按了234三個鍵,每個鍵對應3個字母,最終有3x3x3種結果。這是乙個深度優先遍歷的過程。

首先建立乙個map,儲存每個數字代表的字串。程式開始時,先將輸入的按鍵對應的字串提取出來,放到乙個vector中,即下面的v,有幾個按鍵,vector的長度就是多少。

遞迴開始時,先從vector[0]開始,即第乙個按鍵,一直遍歷到最後乙個按鍵。每次都遍歷每乙個按鍵的代表的每乙個字母,並將其新增到字串tmp_s中。

遞迴的出口是:當字串的長度等於輸入的按鍵數時。

class

solution,,

,,,,

,};

vector

lettercombinations

(string digits)

backtrack(0

);return res;

}//count從0開始遞增到輸入的字元長度,每個字元代表的按鍵字母存在v[count]中

void

backtrack

(int count)

for(

int i =

0;i < v[count]

.size()

;++ i)}}

;

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