题解 | #字符个数统计#
字符个数统计
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);
}