题解 | #牛名生成器#
牛名生成器
https://www.nowcoder.com/practice/f82fe408de8f4fbdbc30162d6b3e65bb
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param digits string字符串
* @return string字符串vector
*/
map<char, string> mp{{'2', "abc"}, {'3', "def"}, {'4', "ghi"}, {'5', "jkl"}, {'6', "mno"}, {'7', "pqrs"}, {'8', "tuv"}, {'9', "wxyz"}};
vector<string> ans;
void recursive(int start1, int start2, int length, string path, string digits) {
if (length == path.size()) {
ans.push_back(path);
return;
}
for (int i = 0; i < mp[digits[start1+1]].size(); i++) {
recursive(start1+1, i, length, path+mp[digits[start1+1]][i], digits);
}
}
vector<string> letterCombinations(string digits) {
// write code here
if (digits == "") return ans;
int length = digits.size();
for (int i = 0; i < mp[digits[0]].size(); i++) {
string path = string(1, mp[digits[0]][i]);
recursive(0, 0, length, path, digits);
}
return ans;
}
};
查看12道真题和解析
