17、Letter Combinations of a Phone Number
题目
针对输入的数字串,每一个数字都对应对个字符可以选择。因此可以直接采用递归的思想,依次遍历数字串的每一个数字,处理到当前数字时,余下的数字可以看出一个规模更小的子串来处理,这正符合递归的思想,将问题逐步化小。代码如下:
class Solution { public: vector<string> phoneNumber; Solution() { phoneNumber.push_back(""); phoneNumber.push_back(""); phoneNumber.push_back("abc");//2 phoneNumber.push_back("def"); phoneNumber.push_back("ghi"); phoneNumber.push_back("jkl"); phoneNumber.push_back("mno"); phoneNumber.push_back("pqrs"); phoneNumber.push_back("tuv"); phoneNumber.push_back("wxyz"); } vector<string> letterCombinations(string digits) { int index = 0; vector<string> res; if("" == digits) { return res; } string str=""; letterCombinations(digits,0,res,str); return res; } void letterCombinations(const string digits,int index,vector<string>&res,string str) { if(digits[index] == '