题型:组合题
字符串解码
“行程长度编码”(Run-Length Encoding)是一种无损压缩算法,常用于压缩重复字符较多的数据,以减少存储空间。假设原始字符串不包含数字字符,压缩规则如下:
①如果原始字符串中一个字符连续出现N次(N≥2),在压缩字符串中表示为“字符+数字N”。例如,编码“A12”代表12个连续的字符A。
②如果原始字符串中一个字符只出现1次,在压缩字符串中表示为该字符本身。例如,编码“B”代表1个字符B。
以下程序实现读取压缩字符串并输出其原始的、解压后的形式,试补全程序。
#include <cctype>
#include <iostream>
#include <string>
using namespace std;
int main() {
string z;
cin >> z; // 修正语法错误:将cin:>>改为cin >>
string s = "";
for (int i = 0; i < z.length(); ) {
char ch = z[i];
if (___①_____ && isdigit(z[i+1])) {
i++;
int count = 0;
while (i < z.length() && isdigit(z[i])) {
count = ____②___;
i++;
}
for (int j = 0; j < __③__; ++j) {
s += ch;
}
} else {
s += __④__;
_⑤___;
}
}
cout << s << endl;
return 0;
} (1).①处应填()
| A. i<z.length() |
B. i-1>=0 |
| C. i+1<z.length() |
D. isdigit(z[ij) |
③处应填()
| A. count -1 |
B. count |
| C. 10 |
D. z[i]-'0' |
②处应填()
| A. count+(z[i]-'0') |
B. count*10+(zi]-'0') |
| C. z[i]-'O' |
D. count+1 |
⑤处应填()
| A. i-- |
B. i=i+2 |
| C. i++ |
D. //不执行任何操作 |
④处应填()
| A. z[i+1] |
B. ch |
| C. z.back() |
D. (char)z[i]+1 |
更新时间:2025-10-15 12:28:55
|
【知识点】
CCF非专业级别软件能力认证CSP-J/入门级
抱歉! 您未登录, 不能查看答案和解析点击登录











