山东理工ACM【2761】编码

时间:2021-01-21 15:59:37


编码

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

给你一个由大写字母组成的组成的字符串,你可以用如下规则对其进行编码:1、 包含K个相同字母的连续字符串可以用KX表示,其中X是相同的字母。2、 如果K为1,不输出K

输入

 输入有多组,直到文件结束。每组一个字符串,长度为10000以内

输出

 输出编码后的字符串。

示例输入

ABC
ABBCCC

示例输出

ABC
A2B3C





#include <stdio.h>
#include <string.h>
int main()
{
    char a[10001],s;
    int n,i,j,num;
    while(~scanf("%s",a))
    {
        s=a[0];
        num=1;
        n=strlen(a);
        for(i=1; i<n; i++)
        {
            if(s==a[i])
                num++;//如果后一项等于s,num加1
            else
            {
                if(num!=1)
                    printf("%d",num);
                printf("%c",s);
                s=a[i];
                num=1;
            }
        }
        if(num!=1)
            printf("%d",num);
        printf("%c\n",s);
        memset(a,0,sizeof(a));//把数组清零
    }
    return 0;
}