字符串压缩(华为2014,机试)

原创 2013年12月04日 11:01:51

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define MAX_RLEN 50

/* Returns the Run Length Encoded string for the
   source string src */
char *encode(char *src)
{
    int rLen;
    char count[MAX_RLEN];
    int len = strlen(src);

    /* If all characters in the source string are different,
      then size of destination string would be twice of input string.
      For example if the src is "abcd", then dest would be "a1b1c1d1"
      For other inputs, size would be less than twice.  */
    char *dest = (char *)malloc(sizeof(char)*(len*2 + 1));

    int i, j = 0, k;

    /* traverse the input string one by one */
    for(i = 0; i < len; i++)
    {

        /* Copy the first occurrence of the new character */
        dest[j++] = src[i];

        /* Count the number of occurrences of the new character */
        rLen = 1;
        while(i + 1 < len && src[i] == src[i+1])
        {
            rLen++;
            i++;
        }

        /* Store rLen in a character array count[] */
        sprintf(count, "%d", rLen);                 //防止数目过大

        /* Copy the count[] to destination */
        for(k = 0; *(count+k); k++, j++)
        {
            dest[j] = count[k];
        }
    }

    /*terminate the destination string */
    dest[j] = '\0';
    return dest;
}

/*driver program to test above function */
int main()
{
    char str[] = "geeksforgeeks";
    char *res = encode(str);
    printf("%s", res);
    getchar();
}
Time Complexity:O(n)


2014华为机试——字符串压缩

// 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 // 压缩规则: // 1. 仅压缩连续重复出现的字符...
  • Manketon
  • Manketon
  • 2014年07月17日 20:25
  • 423

华为2014机试字符串压缩

华为2014校园招聘的机试题目 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 压缩规则:     1、仅...
  • sunp823
  • sunp823
  • 2015年05月11日 23:56
  • 344

[华为机试练习题]23.修改字符串

题目描述: 将给定字符串中连续出现3次的小写字母替换为改小写字母在字母表中的下一个字母(z变为a),大写字母和其他字符不处理,仍然保留。要求最终输出的字符串中不再存在任何连续出现3次的小写字...
  • SunnyYoona
  • SunnyYoona
  • 2015年06月30日 21:38
  • 1323

字符串排序(2015华为校招)

1、字符串由大小写字母。数字以及空格组成,一个或多个空格将多个字符串隔开 2、解析出各个字符串 3、输出结果时,将得出的各子串按照长度从大到小排序,如果长度一样,按照小写字母>大写字母>数字,进行排序...
  • sun_guanghui
  • sun_guanghui
  • 2015年08月20日 19:30
  • 471

华为机试—字符串压缩

题目:字符串压缩 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 压缩规则:  1. 仅压缩连续重...
  • wdkirchhoff
  • wdkirchhoff
  • 2014年12月27日 22:36
  • 3552

华为机试—字符串压缩

题目:字符串压缩 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 压缩规则: 1. 仅压缩...
  • wtyvhreal
  • wtyvhreal
  • 2014年12月26日 18:30
  • 1597

(华为机试)字符串压缩

通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 压缩规则: 1. 仅压缩连续重复出现的字符。比如字符串"ab...
  • gylltq
  • gylltq
  • 2014年07月12日 22:27
  • 390

华为机试——字符串压缩

字符串压缩通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。   压缩规则:   1、仅压缩连续重复出现的字符。...
  • u012260238
  • u012260238
  • 2016年01月12日 16:28
  • 214

2014华为机试(一)

2014华为机试(一)/****************************************************************************************...
  • Varygod
  • Varygod
  • 2015年07月16日 21:45
  • 793

华为机试-2014

题目大意:有字符串表示的一个四则运算表达式,要求计算出该表达式的正确数值。四则运算即:加减乘除"+-*/",另外该表达式中的数字只能是1位(数值范围0~9)。另若有不能整除的情况,按向下取整处理,eg...
  • jiangxi756
  • jiangxi756
  • 2013年09月09日 20:47
  • 686
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:字符串压缩(华为2014,机试)
举报原因:
原因补充:

(最多只允许输入30个字)