電話號碼的字母組合

2021-09-22 18:30:53 字數 926 閱讀 9950

這是一道我刷題時遇到的乙個題目,很簡單,輸入數字,輸出這些數字構成的字元排列組合

由可以看出。

given a string containing digits from 2-9 inclusive, return all possible letter combinations that the number could represent.

example:

input: 「23」

output: [「ad」, 「ae」, 「af」, 「bd」, 「be」, 「bf」, 「cd」, 「ce」, 「cf」].

一開始想的是直接多層for迴圈巢狀解決,但是巢狀的層數由數字的個數決定,事先並不清楚,所以該方法行不通。 後面看別人的解答 發現用linkedlist 每次把鍊錶頭部的元素彈出,在這個彈出字串的尾部加上乙個遍歷到的數字所代表的字元 也相當於是多層for迴圈巢狀

例如 輸入 87 ,首先 linkedlist 彈出字串為""(空)(事先定義好),然後remove掉這個字串,再把這個字串尾部再加上』8』所代表的字元 ,再 add到這個鍊錶中,此時linkedlist中的元素為 t u v,再重複上面操作 彈出第乙個字串為 t ,把它從 linkedlist中 remove ,再在 t 的後面加上 『7』 代表的字元 ,再 add到鍊錶中 此時鍊錶的元素為 tp tq tr ts up uq ur … 重複這個過程直到遍歷結束.

思路如上 實現**:

public static listlettercombinations(string digits) 

string map = new string;

linkedlistr = new linkedlist();

r.add("");

for(int i=0;i}

}return r;

}

電話號碼的字母組合

給乙個數字字串,每個數字代表乙個字母,請返回其所有可能的字母組合。下圖的手機按鍵圖,就表示了每個數字可以代表的字母。樣例給定 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...

電話號碼的字母組合

給定乙個僅包含數字 2 9 的字串,返回所有它能表示的字母組合。給出數字到字母的對映如下 與 按鍵相同 注意 1 不對應任何字母。示例 輸入 23 輸出 ad ae af bd be bf cd ce cf 這是一道類似全排列的題目,使用遞迴思想 void digui out int idx,str...