注意学习这里哈希表的使用。
代码:
class Solution {
unordered_map<char,string> czb{
{'2',"abc"},
{'3',"def"},
{'4',"ghi"},
{'5',"jkl"},
{'6',"mno"},
{'7',"pqrs"},
{'8',"tuv"},
{'9',"wxyz"}
};
void dfs(int u,string digits,int n,vector<string>&ans,string temp)
{
if(u==n)
{
ans.push_back(temp);
}
char ct=digits[u];
string st=czb[ct];
for(auto t:st)
{
temp.push_back(t);
dfs(u+1,digits,n,ans,temp);
temp.pop_back();
}
}
public:
vector<string> letterCombinations(string digits) {
vector<string> ans;
string temp;
if(digits.empty()) return ans;
int n = digits.length();
dfs(0,digits,n,ans,temp);
return ans;
}
};