class Solution {
private:
    const string letterMap[10] = {
        "",
        "",
        "abc",
        "def",
        "ghi",
        "jkl",
        "mno",
        "pqrs",
        "tuv",
        "wxyz",
    };
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param num string字符串 
     * @return string字符串vector
     */
    vector<string> result;
    string s;
    void backtracking(const string& digits,int index){
        if(index==digits.size())
        {
            result.push_back(s);
            return;
        }
    int digit = digits[index]-'0';
    string letters = letterMap[digit];
    for(int i=0;i<letters.size();i++){
        s.push_back(letters[i]);
        backtracking(digits,index+1);
        s.pop_back();
    }
}
    vector<string> phoneNumber(string digits) {
        // write code here
        s.clear();
        result.clear();
        if(digits.size()==0)
        {
            return result;
        }
        backtracking(digits,0);
        return result;
        }
    
};