列表

详情


KS17. 字符串归一化

描述

通过键盘输入一串小写字母 (a~z) 组成的字符串。
请编写一个字符串归一化程序,统计字符串中相同字符出现的次数,并按字典序输出字符及其出现次数。
例如字符串"babcc"归一化后为"a1b2c2"

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

输入描述

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

输出描述

输出压缩后的字符串ac5d2e

示例1

输入:

dabcab

输出:

a2b2c1d1

原站题解

C 解法, 执行用时: 2ms, 内存消耗: 300KB, 提交时间: 2021-07-23

#include<stdio.h>
#include<string.h>
int main()
{
    char a[10000],c;
    int i,count[26]={0};
    while ((c=getchar())!='\n')
    {
        count[c-'a']++;
    }
    i=0;
    while (i<26)
    {
        if(count[i]!=0) printf("%c%d",i+'a',count[i]);
        i++;
    }
    return 0;
}

C 解法, 执行用时: 2ms, 内存消耗: 328KB, 提交时间: 2021-09-18

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

int main()
{
    char s[100000];
    while(scanf("%s",s)!=EOF)
    {
        int len=strlen(s);
        int arr[26]={0};
        for(int i=0;i<len;i++)
            arr[(int)s[i]-97]++;
        for(int i=0;i<26;i++)
            if(arr[i]!=0)
                printf("%c%d",i+97,arr[i]);
        printf("\n");
    }
    return 0;
}

上一题