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

洛谷最经典题目之--垂直柱状图

一起来交流编程吧【CSDN app】:
http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=x9pL9ccIHGKNLE0CWviAqQ_q6HzxomLW&authKey=VslKe623ptw8VRepda%2Bh0Ttr8Ruz8v%2FBW5HpVzyTWU7ECwpHIZpULMj6qIHYZBVb&noverify=0&gro

垂直柱状图

题目描述

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

输入格式

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

输出格式

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

样例 #1

样例输入 #1

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

样例输出 #1

***                   **                   *     *   **                   *     *   *
*       *     *             *     *   *
*       *     * *     * *   *     * * *
*       *   * * *     * *   * *   * * * *
*     * * * * * *     * * * * *   * * * *     * *
* * * * * * * * * * * * * * * * * * * * * * * * * *
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

提示

每行输出后面不允许出现多余的空格。

直接上代码

#include<bits/stdc++.h>
using namespace std;
long long q,w,e,r,t,y,u,o,s,d,f,g,h,j,z,x,c,v,n,m,i;
long long k,l,p;
long long b[100][1000],bb[10000];
string a;
char cc;
int main()
{while(cin>>cc){if(cc>=65&&cc<=90){bb[cc-64]++;}if(cc>=97&&cc<=122){bb[cc-96]++;}}for(i=1;i<=26;i++){k=max(k,bb[i]);}for(i=1;i<=k;i++){for(j=1;j<=26;j++){if(k-i+1<=bb[j])cout<<"* ";else cout<<"  ";}cout<<endl;}for(i=65;i<=90;i++){cc=i;cout<<cc<<" ";}return 0;
}

其实这道题很简单,就是注意细节就可以了,一路扫过去,把所有单词出现的次数记录下来,然后模拟一个输出。

输出其实最麻烦。

主要思路,求最大的,然后从底下或者最上面扫,当a-z中有字母个数达到现在已所指的数目,就输出,否则就输出空格。

还有件很重要的是,别输出多余的空格了,注意理解。
通过本题目能够熟悉string字符串的相关操作,包括字符串的STL函数,字符串的遍历以及字符串输入三部分来说明

STL中字符串操作

std::string::reverse() 用于翻转模版,需要提供首尾迭代器作为参数,使用实例:reverse(s.begin(),s.end())
std::string::erase() 用于删除区间的字符片段,传入两个迭代器l与r,用于删除区间[l,r)[l,r)的范围内的字符。使用实例:s.erase(s.end()-5, s.end())
std::string::susbstr() 用于提取字符串,使用的区间范围同样是[l,r)[l,r)的,使用例子:s.substr(s.find(‘’)+1) 提示:其中一个参数表示,从此处到字符串结尾。
std::string:find()用于查找子字符串在母串中的第一个出现的位置,并返回一个int型的位置,使用例子:s.find(subs, beta+1),表示从位置beta继续向后寻找子串,并返回找到的第一个子串的位置,另外若无法找到时,采用string::npos作为查找失败的结果,若判断使用>=0>=0无法成功判断

相关文章:

  • 面试宝典之消息中间件面试题
  • set -e的作用
  • 【踩坑】flask_uploads报错cannot import name ‘secure_filename‘
  • 简单的天天酷跑小游戏实现
  • 全自动网页生成系统网站源码重构版
  • 基于SpringBoot+Vue实现的二手交易系统
  • openssl3.2 - 自己构建openssl.exe的VS工程(在编译完的源码版本上)
  • TensorRT模型优化模型部署(七)--Quantization量化(PTQ and QAT)(二)
  • 观成科技-加密C2框架EvilOSX流量分析
  • Rustdesk打开Win10 下客户端下面服务不会自启,显示服务未运行
  • ros2+gazebo(ign)激光雷达+摄像头模拟
  • R语言【base】——tempfile():返回一个字符串向量,这些字符串可以用作临时文件的名称
  • Three.js 纹理贴图的实现
  • 医院患者满意度调查方案
  • Servlet-体系结构
  • angular2开源库收集
  • emacs初体验
  • Github访问慢解决办法
  • isset在php5.6-和php7.0+的一些差异
  • mysql innodb 索引使用指南
  • Node 版本管理
  • orm2 中文文档 3.1 模型属性
  • Python十分钟制作属于你自己的个性logo
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • 警报:线上事故之CountDownLatch的威力
  • 前嗅ForeSpider教程:创建模板
  • 设计模式(12)迭代器模式(讲解+应用)
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • ​Linux·i2c驱动架构​
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • (HAL库版)freeRTOS移植STMF103
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (利用IDEA+Maven)定制属于自己的jar包
  • (七)Knockout 创建自定义绑定
  • (算法)Travel Information Center
  • (转)linux下的时间函数使用
  • (转)shell中括号的特殊用法 linux if多条件判断
  • (转)重识new
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .NET MVC 验证码
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .NET6 命令行启动及发布单个Exe文件
  • .Net程序帮助文档制作
  • .Net的DataSet直接与SQL2005交互
  • .NET的微型Web框架 Nancy
  • .NET教程 - 字符串 编码 正则表达式(String Encoding Regular Express)
  • @Async注解的坑,小心