- 主页/
- 小米后台研发第三题
小米后台研发第三题
发布于 2017-09-18 21:11
2200 次浏览
0 赞
来自 试题交流
#include <iostream> #include <vector> #include <stdlib.h> using namespace std; void func(string num, string output, vector<string> &outputs, int i, int end) { if (i > end) { outputs.push_back(output); return; } if (i == end || i < end && num[i + 1] != '0') { func(num, output + char('a' + (num[i] - '1')), outputs, i + 1, end); } if (i < end) { if (num[i] == '1' || (num[i] == '2' && (num[i + 1] >= '0' && num[i + 1] <= '6'))) { string temp1; temp1 += num[i]; temp1 += num[i + 1]; int temp2 = atoi(temp1.c_str()); func(num, output + char('a' + (temp2 - 1)), outputs, i + 2, end); } } } int main(int argc, char* argv[]) { string num; while (cin >> num) { vector<string> outputs; func(num, "", outputs, 0, num.length() - 1); int i = 0; for (; i < outputs.size() - 1; i++) { cout << outputs[i] << " "; } cout << outputs[i] << endl; } }
2 条回复
添加回复