c 電話號碼的字母組合

2021-09-02 08:04:28 字數 851 閱讀 7801

問題:給定乙個僅包含數字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...