万卷网 > 题目详情
题型:组合题

字符串解码

“行程长度编码”(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)

(2).

③处应填()

A.

count -1

B.

count

C.

10

D.

z[i]-'0'

(3).

②处应填()

A.

count+(z[i]-'0')

B.

count*10+(zi]-'0')

C.

z[i]-'O'

D.

count+1

(4).

⑤处应填()

A.

i--

B.

i=i+2

C.

i++

D.

//不执行任何操作

(5).

④处应填()

A.

z[i+1]

B.

ch

C.

z.back()

D.

(char)z[i]+1

更新时间:2025-10-15 12:28:55 |
【知识点】 CCF非专业级别软件能力认证CSP-J/入门级

相似题推荐

简答题

T4多边形


2026-04-17
简答题

T3异或和


2026-04-17
简答题

T2座位


2026-04-16
简答题

T1拼数

2026-04-16
单选题

假设a、b、c都是布尔变量,逻辑表达式(a &&b)IⅡ(!c &&a)的值与下列哪个表达式不始终相等?()

A.

a &&(bⅡ!c)

B.

(al|!c)&&(bⅡ !c)&&(all a)

C.

a &&(!b II c)

D.

!(!a|!b)II(a &&!c)

2025-10-16
公众号
客服 反馈
顶部