天天看點

LeetCode_17. 電話号碼的字母組合

題目描述:

給定一個僅包含數字 2-9 的字元串,傳回所有它能表示的字母組合。

給出數字到字母的映射如下(與電話按鍵相同)。注意 1 不對應任何字母。

LeetCode_17. 電話号碼的字母組合

示例:

輸入:“23”

輸出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].

//DFS
class Solution {
public:
    void DFS(string digits,int pos,string &path,vector<string>& res,vector<string>& dic){
        if(pos==digits.size()){
            res.push_back(path);
            return;
        }
        for(auto c:dic[digits[pos]-'0']){
            path.push_back(c);
            DFS(digits,pos+1,path,res,dic);
            path.pop_back();
        }
    }
    
    vector<string> letterCombinations(string digits) {
        vector<string> res;
        string path="";
        if(digits.empty())
            return res;
        vector<string> dic={"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"};
        DFS(digits,0,path,res,dic);
        return res;
    }
};