【LeetCode 17】电话号码的字母组合

题目链接

【题解】

用回溯法搞一下。 一搞就有~ 注意输入空串的时候别返回那个空串。。

【代码】

class Solution {
public:
    
    string dic[10];
    vector<string> ans;
    
    void dfs(string &digits,int idx,string cur){
        if (idx==(int)digits.size()){
            ans.push_back(cur);
            return;
        }
        int len = dic[(int)(digits[idx]-'0')].size();
        for (int i = 0;i < len;i++){
            dfs(digits,idx+1,cur+dic[(int)(digits[idx]-'0')][i]);
        }
    }
    
    vector<string> letterCombinations(string digits) {
        ans.clear();
        if (digits.size()==0) return ans;
        dic[2] = "abc";dic[3] = "def";dic[4] = "ghi";dic[5]="jkl";
        dic[6]="mno";dic[7] = "pqrs";dic[8] = "tuv";dic[9] = "wxyz";
        dfs(digits,0,"");
        return ans;
    }
};
posted @ 2019-11-07 08:23  AWCXV  阅读(101)  评论(0编辑  收藏  举报