首页 > 试题广场 >

字符串归一化

[编程题]字符串归一化
  • 热度指数:15787 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
通过键盘输入一串小写字母 (a~z) 组成的字符串。
请编写一个字符串归一化程序,统计字符串中相同字符出现的次数,并按字典序输出字符及其出现次数。
例如字符串"babcc"归一化后为"a1b2c2"

数据范围:输入的字符串长度满足 ,保证输入中仅包含小写的英文字母

输入描述:
每个测试用例每行为一个字符串,以'\n'结尾,例如cccddecca


输出描述:
输出压缩后的字符串ac5d2e
示例1

输入

dabcab

输出

a2b2c1d1
#include <stdio.h>
#include <math.h>
#include <string.h>

int main()
{
    int alp_count [26] = {0};//用于存放每个字母的个数
    char str[(int)pow(10,6)];
    gets(str);
    int len = strlen(str);
    for (int i = 0; i < len; i++)
    {
        if('a'<= *(str+i) && *(str+i) <='z')
        {
            for (char j = 'a'; j<= 'z'; j++)
            {
                if(*(str+i) == j)
                {
                    alp_count[(int)(j-'a')] =  alp_count[(int)(j-'a')] + 1;
                }
            }
        }
    }
    for (int k = 0; k <26; k++)
    {
        if (*(alp_count + k) == 0)
            continue;
        printf("%c%d",(char)('a'+k),*(alp_count + k));
    }

}
发表于 2025-05-29 13:22:35 回复(0)