classSolution{public:vector<string>ans;vector<string>letterCombinations(stringdigits){// Note: The Solution object is instantiated only once and is reused by each test case.
vector<string>map=GenMap();ans.clear();stringitem="";letterCStep(digits,0,item,map);returnans;}private:voidletterCStep(stringdigits,intstep,stringitem,vector<string>&map){if(step>=digits.length()){ans.push_back(item);return;}else{intindex=digits[step]-'0';for(inti=0;i<map[index].size();i++){item.push_back(map[index][i]);letterCStep(digits,step+1,item,map);item.erase(item.end()-1);}}}vector<string>GenMap(){vector<string>map;map.clear();map.push_back(" ");map.push_back("");map.push_back("abc");map.push_back("def");map.push_back("ghi");map.push_back("jkl");map.push_back("mno");map.push_back("pqrs");map.push_back("tuv");map.push_back("wxyz");returnmap;}};