【十二题解】 | C语言,哈希表,(坚持只引用stdio.h)

计算某字符出现次数

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

第一串字符一个个读入,每读入一个哈希表相应的值加一,这样就算有几万几十万个数字要读入,我们的表也只用开一百多的空间就行

如果是数字,对应的哈希表的值就是数量

如果是字母,大写的就是哈希表相应值加上哈希表加32的相应值

如果是小写字母,就是哈希表相应值加上哈希表-32的相应值

#include <stdio.h>

int main() {

char word;
char hash[156]={0};
int counter = 0;
char c;
int i;
word = getchar();
while(word!='\n'){
    hash[word]++;
    word = getchar();
}
scanf("%c", &c);
if(c>=48 && c<=57){
    counter=hash[c];
}
else if(c>=65 && c<=90){
    counter=hash[c]+hash[c+32];
}
else{
	counter=hash[c]+hash[c-32];
}
printf("%d", counter);
return 0;

}

全部评论
大佬牛,学到了
点赞 回复 分享
发布于 2023-08-03 17:26 江苏
重复的值超过256时,char类型的表可能装不下
点赞 回复 分享
发布于 10-06 17:16 广东

相关推荐

11-03 14:38
重庆大学 Java
AAA求offer教程:我手都抬起来了又揣裤兜了
点赞 评论 收藏
分享
评论
25
5
分享
牛客网
牛客企业服务