您的位置:首页 > 职场人生

网易面试题 (第24题) 对字符串的一种编码

2016-03-22 21:36 309 查看


对字符串编码,如:

ABBCCC -> A2B3C

AAACCCCCCCCCCBBDDA -> 3A10C2B2DA

//给英语字符串简单的编码,重复的用数字表示
#include <stdio.h>
#include <stdlib.h>

void stringBianma(char *s)
{
char bianma[300];
int i=0,j=0;
int count=1;
for(i=0;s[i]!='\0';i++)
{
if(s[i+1] == s[i])
{
count++;
continue;
}

else if(s[i+1] != s[i])
{
if(count ==1)
{
bianma[j++] = s[i];
}
else if(count>1)
{
if(count>9)
{
int tmp[10],index=0;
while(count>0){
tmp[index++]=count%10;
count=count/10;
}
index--;
for(;index>=0;index--)
{
bianma[j++]=tmp[index]+'0';
}
bianma[j++]=s[i];
count=1;
}
else
{
bianma[j++]=count+'0';
bianma[j++]=s[i];
count=1;
}
}
}
}
bianma[j]='\0';
printf("%s\n",bianma);

}

int main()
{
int n;
scanf("%d",&n); getchar();
while(n--)
{
char string[300];
gets(string);
stringBianma(string);
}

//是时候用return结束战斗了
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: