# 解码 **问题描述** 小明有一串很长的英文字母,可能包含大写和小写。在这串字母中,有很多连续的是重复的。小明想了一个办法将这串字母表达得更短:将连续的几个相同字母写成字母 + 出现次数的形式。 例如,连续的 5 个 a,即 aaaaa,小明可以简写成 a5(也可能简写成 a4a、aa3a 等)。对于这个例子:HHHellllloo,小明可以简写成 H3el5o2。为了方便表达,小明不会将连续的超过 9 个相同的字符写成简写的形式。 现在给出简写后的字符串,请帮助小明还原成原来的串。 **输入格式** 输入一行包含一个字符串。 **输出格式** 输出一个字符串,表示还原后的串。 **样例输入** ``` H3el5o2 ``` **样例输出** ``` HHHellllloo ``` **评测用例规模与约定** 对于所有评测用例,字符串由大小写英文字母和数字组成,长度不超过100。 请注意原来的串长度可能超过 100。 以下程序实现了这一功能,请你填补空白处内容: ```c #include using namespace std; char s2[100000]; int main() { char s1[150]; cin >> s1; int top = 0; for (int i = 0; s1[i] != '\0'; i++) { if ((s1[i] >= 'A' && s1[i] <= 'Z') || (s1[i] >= 'a' && s1[i] <= 'z')) { s2[top++] = s1[i]; } else { while (s1[i] != '1') { __________________ s1[i] = s1[i] - 1; } } } s2[top] = '\0'; cout << s2; return 0; } ``` ## aop ### before ```c ``` ### after ```c ``` ## 答案 ```c s2[top++] = s1[i - 1]; ``` ## 选项 ### A ```c s2[++top] = s1[i - 1]; ``` ### B ```c s2[++top] = s1[i + 1]; ``` ### C ```c s2[top++] = s1[i + 1]; ```