演算法題之電話號碼的字母組合問題

2021-10-10 01:21:00 字數 1504 閱讀 7230

題目描述

思路分析

**實現

public list

lettercombinations

(string digits)

//定義sub:儲存每一種字母組合

stringbuilder sub =

newstringbuilder()

;//定義map:儲存所有的數字和數字對應的所有字母

mapmap =

newhashmap

<

>()

;//將**本所有數字與對應的字母儲存到map中

map.

put(

'2',

"abc");

map.

put(

'3',

"def");

map.

put(

'4',

"ghi");

map.

put(

'5',

"jkl");

map.

put(

'6',

"mno");

map.

put(

'7',

"pqrs");

map.

put(

'8',

"tuv");

map.

put(

'9',

"wxyz");

//定義乙個string陣列:儲存傳入的digits對應的字母

string[

] arr =

newstring

[digits.

length()

];for(

int i =

0;i < digits.

length()

;i++

)//從下標為0開始進行dfs

dfs(

0,arr,res,sub)

;return res;

}private

void

dfs(

int start, string[

] arr, list

res, stringbuilder sub)

//注意:這裡在遍歷一層時,內部因為每乙個數字對應的字母存在多個字元,例如2對應的"abc"包含a,b,c

//所以我們需要再巢狀一層for迴圈進行進一步的遍歷新增

for(

int i = start; i < arr.length; i++)}

}

演算法題 電話號碼的字母組合

給定乙個僅包含數字 2 9 的字串,返回所有它能表示的字母組合。給出數字到字母的對映如下 與 按鍵相同 注意 1 不對應任何字母。示例 輸入 23 輸出 ad ae af bd be bf cd ce cf 說明 儘管上面的答案是按字典序排列的,但是你可以任意選擇答案輸出的順序。param digi...

電話號碼的字母組合

給乙個數字字串,每個數字代表乙個字母,請返回其所有可能的字母組合。下圖的手機按鍵圖,就表示了每個數字可以代表的字母。樣例給定 23 返回 ad ae af bd be bf cd ce cf 注意以上的答案是按照詞典編撰順序進行輸出的,不過,在做本題時,你也可以任意選擇你喜歡的輸出順序。class ...

電話號碼的字母組合

給定乙個僅包含數字2 9的字串,返回所有它能表示的字母組合。給出數字到字母的對映關係如下 示例 輸入 23 輸出 ad ae af bd be bf cd ce cf 注 輸出字串順序任意 我的 public class lettercombinationsofaphonenumber public...