标签:key 好的 int path code nat res ons oar
方法:使用递归的思想
这个问题与上一个问题的不同之处在于其在每个数字对应的字母中只能选择一个,这里的关键是对递归的过程有比较好的认识。
class Solution { public: const vector<string> keyboard{"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"}; vector<string> letterCombinations(string digits) { vector<string> result; if(digits.empty()) return result; dfs(digits, 0, "", result); return result; } void dfs(const string &digits, int cur, string path, vector<string> &result) { if(digits.size() == cur) { result.push_back(path); return; } for(int i=0; i <keyboard[digits[cur]-‘0‘].size(); ++i) dfs(digits, cur+1, path+keyboard[digits[cur]-‘0‘][i], result); } };
Letter Combinations of a Phone Number
标签:key 好的 int path code nat res ons oar
原文地址:http://www.cnblogs.com/chengyuz/p/6842768.html