博客
关于我
PAT乙级真题 1042 字符统计 C++实现
阅读量:616 次
发布时间:2019-03-13

本文共 1486 字,大约阅读时间需要 4 分钟。

要解决找出一段给定文字中出现最频繁的英国字母的问题,可以按照以下步骤编写程序:

  • 包含必要的头文件:需要访问标准输入流和字符分类函数,因此需要包含<iostream><cctype>头文件。

  • 初始化变量:创建一个大小为26的整数数组nums,用于记录每个英文字母的出现次数。同时,设置变量maxNum记录当前最大出现次数,maxIndex记录对应的字母位置。

  • 读取输入:使用getline函数读取完整输入行,s字符串包含所有字符,包括空格和字母。

  • 遍历字符串:对每个字符进行检查:

    • 使用isalpha函数判断是否为字母。
    • 将字符转换为小写字母,索引到nums数组中,更新计数。
    • 检查当前字母是否为出现次数最高的,或者在最高次数中字母序更小的,如果是,则更新最大值和索引。
  • 输出结果:根据最大值和索引找到对应的字母,输出字母及其出现次数。

  • 下面是优化后的完整代码:

    #include 
    #include
    #include
    #include
    using namespace std;int main() { string s; getline(cin, s); vector
    nums(26, 0); int maxNum = 0; int maxIndex = 26; // sqlite 类似于初始最大值 for (char c : s) { if (isalpha(c)) { // 检查是否为字母 char lower_c = tolower(c); // 转换为小写 int index = lower_c - 'a'; nums[index]++; if (nums[index] > maxNum) { maxNum = nums[index]; maxIndex = index; } else if (nums[index] == maxNum && index < maxIndex) { maxIndex = index; } } } char resultChar = 'a' + maxIndex; cout << resultChar << " " << maxNum << endl; return 0;}

    代码解释

    • 头文件包含:包含了必要的<iostream><cctype>,以便读取输入和处理字符。
    • 数组初始化vector<int> nums(26, 0);创建一个大小为26的整数数组,记录每个字母的出现次数。
    • 读取输入:使用getline读取完整输入行,包括空格。
    • 遍历字符:检查每个字符是否为字母,转换为小写后统计次数,并更新最大出现次数及对应的字母索引。
    • 结果输出:根据最大值和索引找到对应的字母,输出字母及其出现次数。

    注意事项

    • 该程序正确处理大小写,并统计英文字母的出现次数,不区分输入的大小写。
    • 表现形式递增字母顺序,确保在出现次数相同的情况下,输出字母序最小的。
    • 适用于输入长度不超过1000的情况,无需过多担心性能问题。

    转载地址:http://qkmaz.baihongyu.com/

    你可能感兴趣的文章
    依赖范围scope
    查看>>
    apache服务器 vs Tomcat服务器
    查看>>
    springboot:集成 Jsp
    查看>>
    Python:简介
    查看>>
    python:input
    查看>>
    python:字符串
    查看>>
    cobaltstrike生成一个原生c,然后利用xor加密解密执行
    查看>>
    HTML中如何给HTML元素添加事件
    查看>>
    Redis概述和基础
    查看>>
    wpf 使用Font Awesome
    查看>>
    阿里云Windows服务器+PHPStudy+apache 如何部署SSL证书
    查看>>
    Windows10:远程桌面连接报错“出现身份验证错误。要求的函数不受支持”
    查看>>
    lettcode 221. 最大正方形
    查看>>
    0X3协议与数据包
    查看>>
    C++ 函数需要有返回值,但非全分支return(RVO)
    查看>>
    python解释器环境问题
    查看>>
    图像质量评估仿真
    查看>>
    uni-app快速导入自己需要的插件
    查看>>
    作为公共组软件工程师如何工作
    查看>>
    编写xor_shellcode.py
    查看>>