题解
2023-08-17 17:03:14
发布于:广东
15阅读
0回复
0点赞
#include <iostream>
#include <vector>
#include <map>
#include <algorithm>
using namespaceace std;
map<int, vector<char>> digitMap = {
{2, {'a', 'b', 'c'}},
{3, {'d', 'e', 'f'}},
{4, {'g', 'h', 'i'}},
{5, {'j', 'k', 'l'}},
{6, {'m', 'n', 'o'}},
{7, {'p', 'q', 'r', 's'}},
{8, {'t', 'u', 'v'}},
{9, {'w', 'x', 'y', 'z'}}
};
vector<string> com;
void genCom(vector<int>& digits, int index, string current) {
if (index == digits.size()) {
com.push_back(current);
return;
}
int digit = digits[index];
vector<char>& letters = digitMap[digit];
for (char letter : letters) {
genCom(digits, index + 1, current + letter);
}
}
int main() {
int N;
cin >> N;
vector<int> digits(N);
for (int i = 0; i < N; i++) {
cin >> digits[i];
}
genCom(digits, 0, "");
sort(com.begin(), com.end());
int M = com.size();
cout << M << endl;
for (string com : com) {
cout << com << endl;
}
return 0;
}
这里空空如也
有帮助,赞一个