列表

详情


HJ34. 图片整理

描述

Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。请大家给Lily帮忙,通过代码解决。
Lily使用的图片使用字符"A"到"Z"、"a"到"z"、"0"到"9"表示。

数据范围:每组输入的字符串长度满足

输入描述

一行,一个字符串,字符串中的每个字符表示一张Lily使用的图片。

输出描述

Lily的所有图片按照从小到大的顺序输出

示例1

输入:

Ihave1nose2hands10fingers

输出:

0112Iaadeeefghhinnnorsssv

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C 解法, 执行用时: 1ms, 内存消耗: 268KB, 提交时间: 2020-12-03

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

int main(){
    char s[1025];
    while (scanf("%s", s)!= EOF){
        int a[1025] ={0};
        int len=strlen(s);
        for(int i=0; i< len; i++)
        {
            a[s[i]]++;
        }
        for(int i=0; i<1025; i++)
        {
            while(a[i]!=0){
                printf("%c",i);
                a[i]--;
            }
        }
        printf("\n");
    }
}

C 解法, 执行用时: 1ms, 内存消耗: 348KB, 提交时间: 2021-06-14

#include <stdio.h>

int main()
{
    char in_str[1024] = {0};
    while(scanf("%s", in_str) != EOF){
        int in_len = strlen(in_str);
        for(int i = 0; i< 0xff; i++){
            for(int j = 0; j<in_len; j++){
                if( (int)in_str[j] == i){
                    printf("%c", in_str[j]);
                }
            }
        }
        printf("\r\n");
        memset(in_str, 0, sizeof(in_str));
    }
    
    
    return 0;
}

上一题