這是一道我刷題時遇到的乙個題目,很簡單,輸入數字,輸出這些數字構成的字元排列組合
由可以看出。
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...