当前位置: 首页 > news >正文

题解:洛谷 P1598 [USACO03FEB] 垂直柱状图 Vertical Histogram

【题目来源】

洛谷:P1598 垂直柱状图 - 洛谷

【题目描述】

写一个程序从输入文件中去读取四行大写字母(全都是大写的,每行不超过 \(100\) 个字符),然后用柱状图输出每个字符在输入文件中出现的次数。严格地按照输出样例来安排你的输出格式。

【输入】

四行字符,由大写字母组成,每行不超过 \(100\) 个字符

【输出】

由若干行组成,前几行由空格和星号组成,最后一行则是由空格和字母组成的。在任何一行末尾不要打印不需要的多余空格。不要打印任何空行。

【输入样例】

THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG.
THIS IS AN EXAMPLE TO TEST FOR YOUR
HISTOGRAM PROGRAM.
HELLO!

【输出样例】

                            ***                   **                   *     *   **                   *     *   *
*       *     *             *     *   *
*       *     * *     * *   *     * * *
*       *   * * *     * *   * *   * * * *
*     * * * * * *     * * * * *   * * * *     * *
* * * * * * * * * * * * * * * * * * * * * * * * * *
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

【算法标签】

《洛谷 P1598 垂直柱状图》 #模拟# #字符串#

【代码详解】

#include <bits/stdc++.h>  // 包含标准库头文件(万能头文件)
using namespace std;      // 使用标准命名空间int main()
{int a[300] = {0};     // 定义数组:统计每个字符出现的次数(ASCII码范围)int max = 0;          // 定义变量:存储字母出现的最大次数string s;             // 定义字符串:存储每行输入// 读取4行输入并统计字母出现次数for (int i = 1; i <= 4; i++) {getline(cin, s);  // 读取一行输入// 统计当前行每个字符的出现次数for (int j = 0; j < s.length(); j++) {a[s[j]]++;    // 对应字符的计数器加1}}// 找出A-Z字母中的最大出现次数for (int i = 'A'; i <= 'Z'; i++) {if (a[i] > max) max = a[i];   // 更新最大值}// 从上到下输出柱状图(从最大次数开始)for (int i = max; i > 0; i--) {// 处理A-Y字母for (int j = 'A'; j < 'Z'; j++) {// 当前字母出现次数大于等于行数则输出*,否则输出空格if (a[j] >= i) cout << "* ";else cout << "  ";}// 单独处理Z字母(最后一个字母不加空格)if (a['Z'] >= i) cout << "*";else cout << " ";cout << endl;     // 每行结束换行}// 输出字母表(A-Z)for (char i = 'A'; i < 'Z'; i++) {cout << i << " "; // 输出A-Y字母加空格}cout << 'Z';          // 单独输出Z字母(不加空格)return 0;             // 程序正常结束
}

【运行结果】

THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG.
THIS IS AN EXAMPLE TO TEST FOR YOUR
HISTOGRAM PROGRAM.
HELLO!*                *                *                   *                *                   *     *   *      *                   *     *   *      
*       *     *             *     *   *      
*       *     * *     * *   *     * * *      
*       *   * * *     * *   * *   * * * *    
*     * * * * * *     * * * * *   * * * *     * *  
* * * * * * * * * * * * * * * * * * * * * * * * * *
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
http://www.jsqmd.com/news/387507/

相关文章:

  • 防脱生发洗发水哪个牌子最有效?最安全的防脱洗发水前十名,居家洗护防脱首选推荐 - 博客万
  • 普通人找工作的软件|易直聘9.8分首选,AI免海投 - 博客万
  • 题解:洛谷 P1597 语句解析
  • 国家认证十大维生素d3品牌,维生素d3哪个牌子效果好?排行榜第一名适配上班族 - 博客万
  • 题解:洛谷 P1321 单词覆盖还原
  • 题解:洛谷 P1200 [USACO1.1] 你的飞碟在这儿 Your Ride Is Here
  • 题解:洛谷 P1553 数字反转(升级版)
  • 题解:洛谷 P1308 [NOIP 2011 普及组] 统计单词数
  • Shell echo 命令
  • 照着用就行:研究生专属降AIGC平台 千笔·降AI率助手 VS 万方智搜AI
  • 美容店怎么进行AI推广 - 品牌企业推荐师(官方)
  • 本科生收藏!千笔·专业学术智能体,倾心之选的AI论文平台
  • 题解:洛谷 P5734 【深基6.例6】文字处理软件
  • 题解:洛谷 P5015 [NOIP 2018 普及组] 标题统计
  • 题解:洛谷 P3741 小果的键盘
  • 【前端】Scroll Reveal 动画库高效上手入门教程
  • 数据上图工具:多图层叠加,灵活管理空间数据
  • 题解:洛谷 P1765 手机
  • 题解:洛谷 P1957 口算练习题
  • Vibe Coding的终极秘密,我偷偷用了半年的AI神器,今天决定不藏了,都分享给大家了~~~~
  • 格式转换工具:主流格式互转,结果直接上图预览
  • 坐标拾取工具:支持点线面绘制,结果直接导出
  • 少走弯路:降AIGC工具 千笔AI VS PaperRed,专科生专属高效选择
  • 用数据说话 8个AI论文网站测评:专科生毕业论文写作全攻略
  • 改稿速度拉满! 千笔,本科生论文写作神器
  • 2026 国内智适应动力模块工厂热门推荐的排行情况,回风箱式电子除尘净化器/射流空调机组,智适应动力模块制造企业推荐 - 品牌推荐师
  • 行业内评价最高口碑最好的入户门有哪些?2026十大领军品牌深度解析 - 匠言榜单
  • 题解:洛谷 P5733 【深基6.例1】自动修正
  • 题解:洛谷 P1125 [NOIP 2008 提高组] 笨小猴
  • 题解:洛谷 P1914 小书童——凯撒密码