列表

详情


KS20. 字符串压缩

描述

对字符串进行 RLE 压缩,将相邻的相同字符,用计数值和字符值来代替。例如:aaabccccccddeee,则可用 3a1b6c2d3e 来代替

数据范围:字符串长度满足

输入描述

输入为a-z,A-Z的字符串,且字符串不为空,如aaabccccccddeee

输出描述

压缩后的字符串,如3a1b6c2d3e

示例1

输入:

aaabccccccdd

输出:

3a1b6c2d

原站题解

C++14 解法, 执行用时: 3ms, 内存消耗: 280KB, 提交时间: 2020-02-05

#include<stdio.h>
int main(){
    int n=1;
    char b,c;
    b=getchar();
    while((c=getchar())!='\n'){
        if(c==b)
            n++;
        else{
            printf("%d%c",n,b);
            n=1;
            b=c;
        }
    }
    printf("%d%c\n",n,b);
    return 0;
}

C++14 解法, 执行用时: 3ms, 内存消耗: 300KB, 提交时间: 2019-09-28

#include<stdio.h>
int main(){
    int count=1;
    char c,x;
    x=getchar();
    while((c=getchar())!='\n'){
        if(c==x)
            count++;
        else{
            printf("%d%c",count,x);
            count=1;
            x=c;
        }
    }
    printf("%d%c",count,x);
    return 0;
}

上一题