秒懂带注释题解
2025-07-16 21:29:51
发布于:上海
3阅读
0回复
0点赞
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
string si[9] = {"abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"};
vector<string> com;
int n;
int a[101];
void dfs(int p, string s, int a[], int n){
if (p == n) { // 所有数字处理完毕,将当前字符串加入结果
com.push_back(s);
return;
}
int num = a[p]; // 当前数字
if (num < 2 || num > 9){
return;
}
string chars = si[num - 2]; // 获取对应的字母字符串
for (int i = 0; i < chars.size(); i++) {
char c = chars[i];
dfs(p + 1, s + c, a, n);
}
}
int main(){
cin >> n;
for(int i = 0; i < n; i++){
cin >> a[i];
}
dfs(0, "", a, n);
sort(com.begin(), com.end());
// 输出结果
cout << com.size() << endl;
for (int i = 0; i < com.size(); i++) {
cout << com[i] << endl;
}
return 0;
}
这里空空如也
有帮助,赞一个