LeetCode 17 Letter Combinations of a Phone Number
Given a string containing digits from 2-9 inclusive, return all possible letter combinations that the number could represent. Return the answer in any order.
A mapping of digits to letters (just like on the telephone buttons) is given below. Note that 1 does not map to any letters.
Solution
用一个 \(vector\) 来存储每个数字的映射,如果当前的 \(res\) 长度达到和 \(digit\) 一样时,就加入答案
点击查看代码
class Solution {
private:
    vector<string> ans;
    string res = "";
    vector<string> mp = {"","", "abc",
                        "def","ghi","jkl",
                        "mno","pqrs","tuv","wxyz"};
    
    void dfs(string digits, int val, string res, int idx){
        if(res.size()==digits.size()){
            ans.push_back(res);return;
        }
        for(int i=0;i<mp[val].size();i++){
            dfs(digits, digits[idx+1]-'0', res+mp[val][i],idx+1);
        }
    }
    
public:
    vector<string> letterCombinations(string digits) {
        int n = digits.size();
        if(n==0)return ans;
        dfs(digits, digits[0]-'0', res, 0);
        return ans;
    }
};
 
                    
                     
                    
                 
                    
                 
 
         
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号