17. Letter Combinations of a Phone Number LeetCode

来源:互联网 发布:季羡林的孩子知乎 编辑:程序博客网 时间:2024/05/29 10:53

题意:给出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;    }};
0 0
原创粉丝点击