# 字符串编码 **问题描述** 小明发明了一种给由全大写字母组成的字符串编码的方法。 对于每一个大写字母,小明将它转换成它在 26 个英文字母中序号,即 A → 1, B → 2, … Z →26。 这样一个字符串就能被转化成一个数字序列:比如 ABCXYZ → 123242526。 现在给定一个转换后的数字序列,小明想还原出原本的字符串。 当然这样的还原有可能存在多个符合条件的字符串。 小明希望找出其中字典序最大的字符串。 **输入格式** 一个数字序列。 **输出格式** 一个只包含大写字母的字符串,代表答案 **样例输入** ``` 123242526 ``` **样例输出** ``` LCXYZ ``` **数据范围** ``` 对于 20% 的评测用例,输入的长度不超过 20。 对于所有评测用例,输入的长度不超过 200000。 ``` 以下程序实现了这一功能,请你补全空白处内容: ```c #include using namespace std; int main() { string in; string re = ""; cin >> in; int len = in.length(); in = in + 'Z'; for (int i = 0; i < len;) { int temp = int(in[i] - '0') * 10 + int(in[i + 1] - '0'); if (temp > 26) { re = re + char(in[i] - '0' + 'A' - 1); i++; } else { __________________ } } cout << re; return 0; } ``` ## 答案 ```c re = re + char(temp + 'A' - 1); i += 2; ``` ## 选项 ### A ```c re = re + char(temp + 'A' - 1); i += 1; ``` ### B ```c re = re + char(temp + 'A'); i += 1; ``` ### C ```c re = re + char(temp + 'A'); i += 2; ```