题样
#include <string.h>
void zip( char *p )
{
int m=0,j=0,count=1;
int len=strlen(p);
for(m=0;m<len;m++)
{
if(p[m]==p[m+1])count++;
else
{
if(count==1)
{
p[j++]=p[m];
}
else
{
if(count>=2&&count<=9)
{
p[j++]=count+48;
p[j++]=p[m];
count=1;
}
else
{
p[j++]=count/10+48;
p[j++]=count%10+48;
p[j++]=p[m];
count=1;
}
}
}
}
p[j]='\0';
}
特别鸣谢博主 一键清风

字符串压缩算法实现
该博客详细介绍了如何使用C++实现一种字符串压缩算法,当连续出现的字符数量小于等于9时,直接将字符和数量合并;大于9时,用两个字符表示数量。该算法可减少重复字符的空间占用。

672

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



