問題:給定乙個僅包含數字2-9
的字串,返回所有它能表示的字母組合。給出數字到字母的對映如下(與**按鍵相同),注意 1 不對應任何字母。
分析:這道題是利用多向遞迴完成的,首先把字元「234」轉換為數字234,並找到數字234對應的字母如下圖,然後開始讓a去和數字3裡面對應的第乙個字母匹配,再讓他們兩匹配的結果和4裡面的三個字母分別匹配,匹配完後,返回到3中的第二個字母,再讓此時的ad和4中的三個字母分別匹配。這樣依次類推,直到所有的字母都匹配完畢,並把匹配好的字串放到vector中即可。
具體**如下:
class solution ;
void combinations(const string& digits,size_t index, vector& strv,const string& combinestr)
int num=digits[index]-'0';
string str=num_to_str[num];
for(auto ch: str)
}vectorlettercombinations(string digits)
size_t index=0;//digits裡面給出的字元個數,從0開始數
vectorstrv;//存放輸出字串的容器
string combinestr;//存放組合後的字串
combinations(digits,index,strv,combinestr);
return strv;}};
電話號碼的字母組合
給乙個數字字串,每個數字代表乙個字母,請返回其所有可能的字母組合。下圖的手機按鍵圖,就表示了每個數字可以代表的字母。樣例給定 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...
電話號碼的字母組合
這是一道我刷題時遇到的乙個題目,很簡單,輸入數字,輸出這些數字構成的字元排列組合 由可以看出。given a string containing digits from 2 9 inclusive,return all possible letter combinations that the nu...