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

一起来交流编程吧【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无法成功判断

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/622739.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Postgres 中文周报:Postgres Weekly 537 期

本周报由 Cloudberry Database 社区编译自英文版《Postgres Weekly》&#xff0c;译文较原文有所调整。 推荐博文 &#x1f3c6; PostgreSQL: The DBMS of the Year 2023 PostgreSQL 荣获 DB-Engines 网站 2023 年度 DBMS 冠军。DB-Engines 收集了 480 款数据库系统信息并跟踪…

机器学习笔记 - 基于OpenCV+稀疏光流的无监督运动检测

一、简述 在各种高级开源库的帮助下&#xff0c;检测固定摄像机拍摄的运动行为是轻而易举可以实现的&#xff0c;但检测移动的摄像机拍摄的移动物体的运动检测依然是一个复杂的问题。在这里&#xff0c;我们将继续基于稀疏光流&#xff0c;并检测移动的无人机相机的运动。 这里…

项目篇 | 图书管理系统 | 账号模块 | 登录

项目篇 | 图书管理系统 | 账号模块 | 登录 概述 该系统实现了管理员登录和用户登录,二者的实现和逻辑几乎完全一致,这里以用户登录为例进行讲解。 函数简介 // account.h void userLoginPage(); // 用户登录页 void userLogin(); // 用户登录userLoginPage:功能页,用户登…

设计模式-传输对象模式

设计模式专栏 模式介绍模式特点应用场景传输对象模式和序列化的区别代码示例Java实现传输对象模式Python实现传输对象模式 传输对象模式在spring中的应用 模式介绍 传输对象模式&#xff08;Transfer Object Pattern&#xff09;是一种设计模式&#xff0c;用于从客户端向服务…

Pandas实战100例 | 案例 11: 添加新列 - 使用 `assign` 方法

案例 11: 添加新列 - 使用 assign 方法 知识点讲解 在 Pandas 中&#xff0c;assign 方法是添加新列到 DataFrame 的一种高效方式。这个方法可以使你在不改变原始 DataFrame 的基础上&#xff0c;添加一列或多列。assign 方法特别适用于链式调用&#xff0c;使得数据处理步骤…

X射线探测器检测锻件缺陷,如何将缺陷显现在图像中的呢?

问题描述&#xff1a;X射线探测器检测锻件缺陷&#xff0c;如何将缺陷显现在图像中的呢&#xff1f; 问题解答&#xff1a; X射线探测器检测锻件缺陷的原理主要是利用X射线的穿透性和成像技术。当X射线穿透锻件时&#xff0c;由于不同材料对X射线的吸收程度不同&#xff0c;因…

MT8766安卓核心板/开发板_MTK联发科4G安卓手机主板方案定制开发

MT8766采用台积电 12 nm FinFET 制程工艺&#xff0c;4*A53架构&#xff0c;Android 9.0操作系统&#xff0c;搭载2.0GHz 的 Arm NEON 引擎。提供了支持最新 OpenOS 及其要求苛刻的应用程序所需的处理能力&#xff0c;专为具有全球蜂窝连接的高移动性和功能强大的平板设备而设计…

MySQL进阶篇(五) 锁

一、概述 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中&#xff0c;除传统的计算资源&#xff08;CPU、RAM、I/O&#xff09;的争用以外&#xff0c;数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问…

深入浅出Android dmabuf_dump工具

目录 dmabuf是什么&#xff1f; dmabuf_dump工具介绍(基于Android 14) Android.bp dmabuf_dump.cpp 整体架构结构如下 dmabuf_dump主要包含以下功能 前置背景知识 fdinfo 思考 bufinfo Dump整个手机系统的dmabuf Dump某个进程的dmabuf​​​​​​​ 以Table[buff…

【JVM 基础】类字节码详解

JVM 基础 - 类字节码详解 多语言编译为字节码在JVM运行Java字节码文件Class文件的结构属性从一个例子开始反编译字节码文件字节码文件信息常量池方法表集合类名 再看两个示例分析try-catch-finallykotlin 函数扩展的实现 源代码通过编译器编译为字节码&#xff0c;再通过类加载…

C、C++、QT 中的字符串格式和处理方法

1. C的C风格字符串采用的是什么编码格式&#xff1f; C 的 C 风格字符串并没有指定特定的编码格式。它只是一个以 null 字符&#xff08;’\0’&#xff09;作为结尾的字符数组&#xff0c;可以存储 ASCII 字符或多字节字符序列。编码格式是由使用字符串的上下文和编译器的设置…

核心笔记-长篇

一、验证授权 Spring Security 1、登录实现思路 SecurityConfig 配置类:securityFilterChain(httpSecurity) 中配置拦截和放行的地址并添加授权管理器,并注入 AuthenticationManager(认证管理对象) 和 BCryptPasswordEncoder(随机盐值加密方法对象)控制层:接受前端发送的账…

文件指针 FILE结构体

C语言中的文件指针是指向FILE类型结构体的指针。(也就是说 文件指针的类型就是FILE类型) 在C语言中&#xff0c;使用文件指针来操作文件。FILE类型是一个结构体类型&#xff0c;它包含了与文件相关的信息&#xff0c;例如文件位置指示器、文件读写状态等。通过文件指针&#x…

【MySQL】多表查询

文章目录 多表查询是什么&#xff1f;一、笛卡尔积&#xff08;或交叉连接&#xff09;二、多表查询分类分类1&#xff1a;等值连接 vs 非等值连接等值连接非等值连接 分类2&#xff1a;自连接 vs 非自连接分类2&#xff1a;内连接 vs 外连接 三、SQL99SQL99 实现 内连接SQL99 …

深度解析Pytest插件pytest-html

在软件开发中&#xff0c;测试报告是开发者获取测试结果和问题定位的关键工具之一。然而&#xff0c;标准的控制台输出有时难以满足我们对测试报告的需求。幸运的是&#xff0c;Pytest插件 pytest-html 提供了一种简单而强大的方式&#xff0c;可以生成漂亮、可视化的HTML格式测…

1992年-2020年ESA_CCI土地覆盖数据介绍、下载与数据分享

数据介绍 ESA CCI Land Cover是欧洲空间局&#xff08;European Space Agency&#xff0c;ESA&#xff09;的一个项目&#xff0c;其目标是生成全球土地覆盖的高质量、一致性和长期的时间序列数据&#xff0c;分辨率大约为300米。 该项目是ESA气候变化计划&#xff08;Climate…

linux系统nginx做负载均衡

负载均衡 作用upstream配置负载均衡算法配置分类热备轮询加权轮询ip_hash 负载均衡配置状态参数nginx配置7层协议及4层协议七层协议做负载均衡四层协议做负载均衡 会话保持ip_hashsticky_cookie_insertjvm_route 作用 负载均衡&#xff08;Load Balance&#xff0c;简称 LB&am…

AI大模型学习笔记二

文章目录 一、Prompt Engineering1&#xff09;环境准备 二、LangChain&#xff08;一个框架名字&#xff09;三、Fine-tuning&#xff08;微调&#xff09; 一、Prompt Engineering 1&#xff09;环境准备 ①安装OpenAI库 pip install --upgrade openai附加 安装来源 pyth…

阶段十-分布式锁

5.1 节 为什么要使用分布式锁 锁是多线程代码中的概念&#xff0c;只有当多任务访问同一个互斥的共享资源时才需要。如下图&#xff1a; 在我们进行单机应用开发&#xff0c;涉及并发同步的时候&#xff0c;我们往往采用synchronized或者lock的方式来解决多线程间的代码同步问…

IPC进程间通信之无名管道与有名管道的对比

无名管道&#xff1a;首先它是内核空间的实现机制&#xff1b;然后只能用于亲缘进程间通信&#xff1b;它在内核所占的大小是64KB&#xff1b;它采用半双工的通信方式&#xff1b;请勿使用lseek函数&#xff1b;读写特点&#xff1a;若读端存在写管道&#xff0c;那么有多少数据…