题目链接

【题解】

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

【代码】

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;
    }
};

相关文章:

  • 2022-01-21
  • 2022-12-23
  • 2022-01-02
  • 2021-04-19
  • 2021-11-19
  • 2021-12-08
猜你喜欢
  • 2021-04-25
  • 2021-06-02
  • 2021-12-02
  • 2021-05-29
  • 2021-10-09
  • 2021-05-07
  • 2021-04-10
  • 2022-01-16
相关资源
相似解决方案