题解 | #牛名生成器#
牛名生成器
https://www.nowcoder.com/practice/f82fe408de8f4fbdbc30162d6b3e65bb
题目考察的知识点:哈希
题目解答方法的文字分析:递归去遍历,当遍历时的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; } };