题解 | #字符个数统计#

字符个数统计

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

字符个数统计:C语言解法

运用的是HASH表的思想,因为只有最多只有128种数据,所以只需维护一个大小为128的字符数组,让输入的字符作为数组下标,取出这个下标数组中的字符直接与输入的字符比较(不用for循环从头再查),如果相同则跳过,不同则赋值,让结果++,最后遇到'\n'结束循环,返回结果即可。

#include<stdio.h>
#define MAX_TABLE_SIZE 128

int main(){
    char hash[MAX_TABLE_SIZE] = {-1};
    char c = 0;
    int num = 0;
    while(~scanf("%c",&c)){
        if(c == '\n') break;
        if(hash[(int)c] != c){
            hash[(int)c] = c;
            num++;
        }
    }
    printf("%d\n",num);
}

alt

全部评论
char hash[128] = {-1},只有hash[0] == -1,其他值都为0,不过不影响结果
2 回复 分享
发布于 2022-11-11 23:53 山东
没看懂这里面的判断语句的作用,while(~scanf("%c",&c)),我试着把“~scanf("%c",&c)”改成“scanf("%c",&c)”或者“1”,好像结果也没变化
点赞 回复 分享
发布于 2023-06-11 14:53 上海

相关推荐

AaronRuan:看到了好多开奖了,不知道为啥自己也有点激动,真的替你们感到高兴啊
点赞 评论 收藏
分享
牛客717484937号:双飞硕没实习挺要命的
点赞 评论 收藏
分享
评论
24
7
分享
牛客网
牛客企业服务