题解 | #字符个数统计#

字符个数统计

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 上海

相关推荐

不愿透露姓名的神秘牛友
07-09 16:15
我应届生,去年10月份开始在这家公司实习,到今年10月份正好一年想(实习+试用期),在想要不要提前9月份就离职,这样好找工作些,但又差一个月满一年,又怕10月份国庆回来离职,容易错过了下半年的金九银十,到年底容易gap到年后
小破站_程序员YT:说这家公司不好吧,你干了快一年 说这家公司好吧,你刚毕业就想跑路说你不懂行情吧,你怕错过金九银十说 你懂行情吧,校招阶段在实习,毕业社招想换工作 哥们,我该怎么劝你留下来呢
应届生,你找到工作了吗
点赞 评论 收藏
分享
牛客83700679...:简历抄别人的,然后再投,有反馈就是简历不行,没反馈就是学历不行,多投多改只要技术不差机会总会有的
点赞 评论 收藏
分享
05-26 22:25
门头沟学院 Java
Java小肖:不会是想叫你过去把你打一顿吧,哈哈哈
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-08 11:16
点赞 评论 收藏
分享
评论
25
7
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务