题目描述
给你一个由大写字母组成的组成的字符串,你可以用如下规则对其进行编码:
1、 包含K个相同字母的连续字符串可以用KX表示,其中X是相同的字母。
2、 如果K为1,不输出K
输入
输入有多组,直到文件结束。每组一个字符串,长度为10000以内
输出
输出编码后的字符串。
示例输入
ABC
ABBCCC
示例输出
ABC
A2B3C
#include<stdio.h>
#include<string.h>
int main()
{
char st[100000];
int st2[100000];
int l,i,k,t,f;
while(gets(st)!=NULL)
{
l=strlen(st);
memset(st2,0,sizeof(st2));
for(i=0; i<l; i++)
{
for(k=i+1;st[i]==st[k]; k++)
{
st2[i]++;
}
if(st2[i]+1>1) printf("%d",st2[i]+1);
printf("%c",st[i]);
i=k-1;
}
printf("\n");
}
return 0;
}
本文介绍了一种简单的字符串压缩算法实现,该算法通过计数连续重复字符的数量来减少字符串的存储空间。文章提供了一个C语言的示例程序,该程序能够读取一系列大写字母组成的字符串,并输出经过压缩后的结果。
369

被折叠的 条评论
为什么被折叠?



