题解 | #牛名生成器#
牛名生成器
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;
}
};
