17. Letter Combinations of a Phone Number

Given a digit string, return all possible letter combinations that the number could represent.
A mapping of digit to letters (just like on the telephone buttons) is given below.


Input:Digit string "23"Output: ["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].

class Solution {
public:
    vector<string> v = {"","","abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};
    vector<string> ans;
    char str[1000];
    //string tmp;
    
    void DFS(int cur,string &d)
    {
        if(cur == d.size())
        {
            str[d.size()] = '\0';
            string tmp = str;
            ans.push_back(tmp);
            return;
        }
        int index = d[cur] - '0';
        for(int i=0;i<v[index].size();i++)
        {
            str[cur] = v[index][i];
          //  cout<<tmp[cur]<<endl;
            DFS(cur+1,d);
        }
    }
    
    vector<string> letterCombinations(string digits) {
        if(digits.size()<=0)
          return ans;
        ans.clear();
        DFS(0,digits);
        return ans;
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容