我是靠谱客的博主 斯文诺言,最近开发中收集的这篇文章主要介绍华为机试--字符个数统计,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

描述:

编写一个函数,计算字符串中含有的不同字符的个数。字符在 ASCII 码范围内( 0~127 ,包括 0 和 127
),换行表示结束符,不算在字符里。不在范围内的不作统计。多个相同的字符只计算一次 例如,对于字符串 abaca 而言,有 a、b、c
三种不同的字符,因此输出 3 。
数据范围: 1≤n≤500

输入描述:

输入一行没有空格的字符串。

输出描述:

输出 输入字符串 中范围在(0~127,包括0和127)字符的种数。

示例1:

输入:abc
输出:3

示例2:

输入:aaa
输出:1

解题思路:
1、限制了输入长度1-500,可以设置一个宏定义常量;
2、输入的字符也有限定范围,ASCII值在0-127,这样就能想到用一个定长的数组来存储每一种字符;
3、我们知道ASCII表示的字符本质上存储的是一个int型的整数,所以可以根据这个字符的ASCII整数值作为在数组中的索引,这样就可以不用比较,因为相同的字符是存储在索引相同的数组位置中的,所以最后只需要再对这个定长数组遍历一遍,计算出非空的个数即可。

#include<stdio.h>
#include<string.h>
#define MAX 500


int main(){
    int n, count=0;
    char str[MAX]={}, str2[127]={};
    scanf("%[^n]n",str);
    
    for(int i=0;i<strlen(str);i++){
        str2[str[i]] = str[i];
    }
    for(int i=0;i<127;i++){
        if(str2[i]!='') count++;
    }
    printf("%dn",count);
        
    return 0;
}

最后

以上就是斯文诺言为你收集整理的华为机试--字符个数统计的全部内容,希望文章能够帮你解决华为机试--字符个数统计所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部