17 電話號碼的字母組合

2021-09-20 21:11:31 字數 699 閱讀 4058

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

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

圖中顯示:2:abc; 3:def; 4:ghi; 5:jkl; 6:mno; 7:pqrs; 8:tuv; 9:wxyz;

輸入:"23"

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

方法一:動態規劃

思路:對於「​456」字串,若我們已經知道」45「對應的字串str

再新增」6「的話,只需在str後面新增」6「所對應的字元種類

結束條件為str的長度等於輸入字串digits的長度,說明已經完成當前組合​​

vectorvec = ;	

vectorans;

//str為當前字串,index為digis字元的下標

void dpcombination(string str, int index, string digits)

else }}

vectorlettercombinations(string digits)

17 電話號碼的字母組合

給定乙個數字字串,返回數字所有可能表示的字母組合。下面給出數字到字母的對映 和 號碼一樣 輸入 數字字串 23 輸出 ad ae af bd be bf cd ce cf 思路1 採用迭代的方法。class solution if digits.empty return vector vectorr...

17 電話號碼的字母組合

1.遞迴 class solution object deflettercombinations self,digits type digits str rtype list str 建立字母對應的字元列表的字典 dic 儲存結果的陣列 ret str iflen digits 0 return 遞...

17 電話號碼的字母組合

分析題目,遞迴雖然簡單,但是消耗了額外的空間,故還是選擇遍歷的辦法。思路如下 每一次新增乙個字母,把之前已經新增過的作為乙個整體,再和新新增的字母組合 注意刪去低維元素 class solution list result newarraylist if digits.length 0 處理第乙個數...