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

概述

作者:翟天保Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处

题目描述:

编写一个函数,统计所输入字符串中不同字符的数量,字符在ASCII码的范围为0到127。

比如,字符串1235asba,有1、2、3、5、a、s、b这七种,输出7。

输入描述:

输入字符串。

输出描述:

输出字符种类数。

示例:

输入:123aaa

输出:4

解题思路:

一种笨方法是用map或者其他容器,挨个分析字符串的字符,如果对应字符没出现过,其值为0,出现过的为1,每次将值变为1时记一次数,得到结果。

还有一种用哈希表来做,这个方法更快更简洁,直接放里面塞char,自动去重,最后输出下hash_set的个数即可。

测试代码:

map解法

#include <iostream>
#include <map>
using namespace std;
int main()
{
    map<char,int> m;
    string str;
    getline(cin,str);
    int number=0;
    for(int i=0;i<str.length();++i)
    {
        if(m[str[i]]==0)
        {
            m[str[i]]=1;
            number++;
        }
    }
    cout<<number;
    return 0;
}

hash_set

#include <iostream>
#include <unordered_set>
using namespace std;
 
int main() {
    string s; 
    cin >> s;
    unordered_set<char> u;
    for(char c : s)
        if(c >= 0 && c <= 127) 
              u.insert(c);
    cout << u.size() << endl;
    return 0;
}

最后

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

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部