您的位置:首页 > 其它

17. Letter Combinations of a Phone Number LeetCode

2016-03-15 22:49 495 查看
题意:给出9键手机键盘和用户按的数字,求所有可能的字母组合,按字典序排列。

题解:把数字和字母用map存一下,然后dfs就可以。

class Solution {
public:
map<char,string>ma = {{'2',"abc"}, {'3',"def"}, {'4',"ghi"},{'5',"jkl"}, {'6',"mno"}, {'7',"pqrs"}, {'8',"tuv"}, {'9',"wxyz"}};
void dfs(vector<string>& ans,string pre,int k,string digits)
{
if(k == digits.length())
{
ans.push_back(pre);
return;
}
string tmp = ma[digits[k]];
for(int i = 0; i < tmp.length(); i++)
dfs(ans,pre + tmp[i],k + 1,digits);
}
vector<string> letterCombinations(string digits) {
vector<string> ans;
ans.clear();
if(digits.length() == 0) return ans;
dfs(ans,"",0,digits);
return ans;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode