题解 | #字符统计#

字符统计

http://www.nowcoder.com/practice/c1f9561de1e240099bdb904765da9ad0

这类题一个思路,用字符对应的ascii码做下标,按题目要求顺序打印就可以了。
for循环的i=1000,可以优化下取最多的字符次数,减少循环次数。tmp['z']也可以优化。
#include "stdio.h"
#include "string.h"

char str[1001] = {0};
int tmp['z'] = {0};

int main(void) {
    int i, j;

    scanf("%s", str);
    int len = strlen(str);
    for (i = 0; i < len; i++) {
        tmp[str[i]] ++;
    }

    for (i = 1000; i > 0; i--) {
        for (j = '0'; j <= '9'; j++) {
            if (tmp[j] == i) {
                printf("%c", j);
            }
        }
        for (j = 'a'; j <= 'z'; j++) {
            if (tmp[j] == i) {
                printf("%c", j);
            }
        }
    }

    return 0;
}


全部评论
char str[1001] = {0}; int tmp['z'] = {0}; 你好,这两个为啥不能放到主函数里面?我放到里面运行了下,发现字符串缺少最后一位z??? 感谢!!
点赞 回复 分享
发布于 2022-06-09 19:25
int tmp['z'] = {0}; 是这个不能放在主函数里面
点赞 回复 分享
发布于 2022-06-09 19:27

相关推荐

头像
11-07 01:12
重庆大学 Java
精致的小松鼠人狠话不多:签哪了哥
点赞 评论 收藏
分享
10-30 23:23
已编辑
中山大学 Web前端
去B座二楼砸水泥地:这无论是个人素质还是专业素质都👇拉满了吧
点赞 评论 收藏
分享
评论
2
2
分享
牛客网
牛客企业服务