题目考察的知识点:哈希

题目解答方法的文字分析:递归去遍历,当遍历时的di等于digits.size()时,说明digits的字符遍历完,可以将combineStr进行保留

本题解析所用的编程语言:c++

class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param digits string字符串 
     * @return string字符串vector
     */
    const string _numToStr[10] = {"","","abc","def","ghi","jkl","mon","pqrs","tuv","wxyz"};
    void Combinations(const string& digits, size_t di, string combineStr, vector<string>& strV)
    {
        if (di == digits.size())
        {
            strV.push_back(combineStr);
            return;
        }
        int num = digits[di] - '0';
        string str = _numToStr[num];
        for (auto ch : str)
        {
            Combinations(digits, di + 1, combineStr + ch, strV);
        }
    }
    vector<string> letterCombinations(string digits) {
        // write code here
        vector<string> strV;
        if (digits.size() == 0)
            return strV;
        Combinations(digits, 0, "", strV);
        return strV;
    }
};