題目描述:
給定一個僅包含數字 2-9 的字元串,傳回所有它能表示的字母組合。
給出數字到字母的映射如下(與電話按鍵相同)。注意 1 不對應任何字母。
示例:
輸入:“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;
}
};