题库首页 › 信息学奥赛 › 题目 17699

完善程序(一) 1-5题 组合题 字符串解码 “行程长度编码”(Run-Length Encoding)是一种无损压缩算法,常用于压缩重复字符较多的数据,以减少存储空间。假设原始字符串不包含数字字符,压缩规则如下: ①如果原始字符串中一个字符连续出现N次(N≥2),在压缩字符串中表示为“字符+数字N”。例如,编码“A12”代表12个连续的字符A。 ②如果原始字符串中一个字符只出现1次,在压缩字符串中表示为该字符本身。例如,编码“B”代表1个字符B。 以下程序实现读取压缩字符串并输出其原始的、解压后的形式,试补全程序。 #include #include #include 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; }

正确答案:完善程序①答案:i+1<z.length()(有数字才进入解码分支)。核心:行程解码分支判断。

试卷来源:2025 CSP-J入门级(第一轮)C++真题

本卷相关题目

在线做题 同科目题库