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

来源:互联网 发布:欣哥刷枪软件 编辑:程序博客网 时间:2024/05/17 01:05

这里写图片描述

对字符串编码,如:
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;}
0 0