題目描述
思路分析
**實現
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...