zoukankan      html  css  js  c++  java
  • 洛谷 P1598 垂直柱状图【字符串+模拟】

    P1598 垂直柱状图

    题目描述

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

    输入输出格式

    输入格式:

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

    输出格式:

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

    输入输出样例

    输入样例#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
    

    说明

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

    题目链接:https://www.luogu.org/problemnew/show/1598

    分析:(⊙o⊙)…贼恶心了,打印格式出错了好几次,GG

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

    输出其实最麻烦。

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

    没想到两个月没做题,水平掉了这么多,我看来还是得花点时间刷题了,准备准备打个蓝桥杯,希望有机会和大佬们在北京相见QAQ

    下面给出AC代码:

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int a[100];
     4 char s[100];
     5 int main()
     6 {
     7     int maxn=0;
     8     for(int i=1;i<=4;i++)
     9     {
    10         gets(s);
    11         int len=strlen(s);
    12         for(int j=0;j<len;j++)
    13         {
    14            if(s[j]>='A'&&s[j]<='Z')
    15                 a[s[j]-'A'+1]++;
    16         }
    17     }
    18     for(int i=1;i<=26;i++)
    19         maxn=max(maxn,a[i]);
    20     for(int t=maxn;t>0;t--)
    21     {
    22         for(int i=1;i<=26;i++)
    23         {
    24             if(a[i]>=t)
    25                 cout<<"*"<<" ";
    26             else printf("  ");
    27         }
    28         cout<<endl;
    29     }
    30     for(int i=(int)'A';i<=(int)'Z';i++)
    31         cout<<(char)i<<" ";
    32     return 0;
    33 }
  • 相关阅读:
    解决mac osx下pip安装ipython权限的问题
    [转载][翻译]Go的50坑:新Golang开发者要注意的陷阱、技巧和常见错误[1]
    PhantomJS 基础及示例 (转)
    Go -- 别人的博客
    [转]Go的50坑:新Golang开发者要注意的陷阱、技巧和常见错误-高级
    Go -- etcd详解(转)
    对require.js 的使用进行总结
    gatsbyjs 使用
    gatsbyjs 了解
    JAMstack 最佳实践
  • 原文地址:https://www.cnblogs.com/ECJTUACM-873284962/p/7744529.html
Copyright © 2011-2022 走看看