• 1638图形


      咕了这么久……最近总算抽得出一点儿时间来写篇博客了。很久没更,都不太知道该发些什么了。想了好一会儿,终于决定,更一下我最近做过的一些比较难得题吧。(各位大佬们多多指教)

      以下是正文:

      

    描述

    贝贝最近玩起了字符游戏,规则是这样的:读入四行字符串,其中的字母都是大写的,乐乐想打印一个柱状图显示每个大写字母的频率。你能帮助他吗?

    输入

    输入文件共有4行:每行为一串字符,不超过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

    说明:

    1.输出的相邻字符间有一个空格。

    2.最后一行的26个大写字母每次必须输出。

    3.大写字母A所在的第一列前没有空格。

      这一题我的思路很简单,全部输入,然后写一个桶排。然后从桶排最高的字母开始,写个循环挨个往下搜索。只要这个字母出现的次数大于循环i,就输出。最后一行单独输出。

      代码:

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int s[26];
     4 int main()
     5 {
     6     int j,n,maxn=0;
     7     string a;
     8     for(int i=1;i<=4;i++)
     9     {
    10         getline(cin,a);
    11         n=a.size();
    12         for(int j=0;j<n;j++)
    13         {
    14             if(a[j]>='A'&&a[j]<='Z') s[a[j]-'A']++;
    15         }
    16     }
    17     for(int i=0;i<26;i++)maxn=max(maxn,s[i]);
    18     for(int i=maxn;i>0;i--)
    19     {
    20         for(j=0;j<26;j++)
    21         {
    22             if(s[j]>=i&&s[j]!=25) cout<<"* ";
    23             if(s[j]<i&&s[j]!=25) cout<<"  ";
    24             if(a[i]>=i&&s[j]==25) cout<<"*";
    25             if(a[i]<i&&s[j]==25) cout<<" ";
    26         }
    27         printf("
    ");
    28     }
    29     for(int i=0;i<26;i++) printf("%c ",i+'A');

    PS:

      这一道题其实我磕了很久都没做出来,原因嘛……大致的思路都有,每个需要注意的点也都挨个儿检查过了,但就是AC不了。最后上了一下洛谷,看了一篇大佬和我的思路比较相似的题解,才找出了我错误的那一个点。修改了几次之后,我的代码才终于AC了。说起来也是一段艰辛的故事。希望不会做这道题的朋友们不会像我这样。

    (疫情复发,注意身体健康)

  • 相关阅读:
    OpenStack源码系列---neutron-server
    理解全虚拟、半虚拟以及硬件辅助的虚拟化
    QEMU+GDB调试方法
    SQL Server故障转移集群
    OpenStack源码系列---nova-conductor
    mysql 安装和基本使用
    数据库原理
    linux 计划任务
    linux 进程管理和内存分配

  • 原文地址:https://www.cnblogs.com/cyk20081108/p/14837370.html
Copyright © 2020-2023  润新知