【华为练习题】字符出现频率

【华为练习题】字符出现频率

题目

描述:写出一个程序,输出基准字符串中统计指定字符出现的频率

字符串仅包括英文大小写字母和空格、逗号、点号

小数点后保留2位有效数字,第三位四舍五入

举例:

输入:wo shi, yi zhi.xiao xiao niao

‘ ’(空格)

输出:0.17

接口说明:

/*

功能: 输入的基准字符串中统计指定字符出现的频率

字符串仅包括英文大小写字母和空格、逗号、点号

小数点后保留2位有效数字,第三位四舍五入

输入: String pString 输入的基准字符串

char c 指定的字符

返回: 输出指定字符出现的频率

*/

解答

#include <iostream>
#include <string>
using namespace std;

float getRateFromString(const string &pString, char c){
    float count = 0, sum = (float)pString.size();
    for (unsigned i = 0; i < pString.size(); i++)
    {
        if (pString[i] == c)
        {
            count++;
        }
    }
    return (float)((int)(count / sum * 100)) / 100;
}
时间: 2024-12-19 05:50:39

【华为练习题】字符出现频率的相关文章

【华为练习题】 求最大凸多边形(高级)

[华为练习题] 求最大凸多边形(高级) 题目 题目描述: 给定一些点,输出最大面积的凸边形.输出起始点为x轴最左边的点,按照顺时针方向输出,每个点必须是凸边形的顶点(不输出边上或凸边形内的点).输入第一个数n为坐标点个数,后面依次为n个坐标点的坐标,横坐标在前,不同坐标点用':'隔开,相同坐标点的横纵坐标用','隔开. 输入样例: 13;-4,1;-2,3;1,3;2,2;1,4;5,4;6,1;2,-4;-3,-3;1,-1;-2,-2;1,-2;-1,-1 输出样例: -4,1;-2,3;1

【华为练习题 】 字符串的最小周期(中级)

[华为练习题 ] 字符串的最小周期(中级) 题目 如果一个字符串可以由某个长度为k的字符串重复多次得到,我们说该串以k为周期.例如,abcabcabcabc以3为周期(注意,它也可以6和12为周期,结果取最小周期3).字符串的长度小于等于100,由调用者保证. 原型: int GetMinPeriod(char *inputstring); 输入参数: char * inputstring:字符串 返回值: int 字符串最小周期 分析 用指针向后寻找与第一个字符相同的字符,找到之后,验证两字符

英文字符进行频率的统计,直方图输出

问题 对指定文件中的英文字符进行频率的统计,不区分大小写(都按照大写统计),忽略非字母.并使用频率直方图的形式显示出来. 来源 贴吧吧友提问 代码 #include<iostream> #include<cctype> #include<cstdio> #include<cassert> using namespace std; class LetterCount { private: enum{LETTERS_SUM=26}; //常量:个英文字母有26个

【华为练习题】 最后一个单词的长度(初级)

[华为练习题] 最后一个单词的长度(初级) 题目 描述: 计算字符串最后一个单词的长度,单词以空格隔开. 题目类别: 字符串 输入: 一行字符串,长度小于128. 输出: 整数N,最后一个单词的长度. 样例输入: hello world 样例输出: 5 解答 #include <iostream> #include <string> using namespace std; int last_word_length(const string &s){ auto begin

华为初级——字符个数统计(三种情况)

第一种情况: 描述:写出一个程序,接受一个有字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数.不区分大小写. 知识点:字符串,函数,指针   题目来源:内部整理   练习阶段:初级   运行时间限制:10Sec  内存限制:128MByte  输入:输入一个有字母和数字组成的字符串,和一个字符.   输出:输出输入字符串中含有该字符的个数.  样例输入: ABCDEF A                    样例输出: 1 源程序: #include<iostream>

【华为练习题】乒乓球赛制

[华为练习题]乒乓球赛制 题目 国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及.其中11分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役.华华就是其中一位,他退役之后走上了乒乓球研究工作,意图弄明白11分制和21分制对选手的不同影响.在开展他的研究之前,他首先需要对他多年比赛的统计数据进行一些分析,所以需要你的帮忙. 华华通过以下方式进行分析,首先将比赛每个球的胜负列成一张表,然后分别计算在11分制和21分制下,双方的比赛结果(截至记录

【华为练习题】 爱因斯坦阶梯(初级)

[华为练习题] 爱因斯坦阶梯(初级) 题目 述: 爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨2阶,则最最后剩一阶,若每步跨3 阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶.只有每次跨7阶,最后才正好一阶不剩.请问这条阶梯共有多少阶? 分析 一个数满足除以2余1,除以3余2,除以5余4,除以6余5,那么这个数为2,3,5,6的最小公倍数减一. 解答 直接解法 #include "stdafx.h" #include <iostream> u

【华为练习题】 阿姆斯特朗数(初级)

[华为练习题] 阿姆斯特朗数(初级) 题目 如果一个正整数等于其各个数字的立方和,则该数称为阿姆斯特朗数(亦称为自恋性数),1除外,如407 = 4^3+0^3+7^3就是一个阿姆斯特朗数.试编程求n(n ≤ 65536)以内的所有阿姆斯特朗数. 原型: int CalcArmstrongNumber(int n); 输入参数: int n: n ≤ 65536 返回值: n以内的阿姆斯特朗数的数量 解答 #include <iostream> using namespace std; boo

【华为练习题】判断点是否在三角形中

[华为练习题]判断点是否在三角形中 题目 一个二维坐标系中(100*100,每一维0~99),已知三角形三个顶点的坐标A.B.C,判断坐标系中的任意点:P,是否在三角形内(在三角形边上也认为在三角形内) 请实现如下接口 /* 功能:点是否在三角形内 输入:三角形三顶点坐标:A.B.C,以及待确认的点:P 输出:无 返回:在三角形内返回true,否则返回false */ public static boolean isInTriangle(POINTA, POINTB, POINTC, POINT