zoukankan      html  css  js  c++  java
  • 【字符串】贝贝的图形

    问题 D: 【字符串】贝贝的图形

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 16  解决: 6
    [提交] [状态] [讨论版] [命题人:外部导入]

    题目描述

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

    输入

     输入共有4行:每行为一串字符,不超过72个字符。

    输出

    与样例的格式保持严格一致。

    样例输入

    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
    

    提示

    1.输出的相邻字符间有一个空格。
    2.最后一行的26个大写字母每次必须输出。
    3.大写字母A所在的第一列前没有空格。

     1 #include <iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 using namespace std;
     6 char s[4][100];
     7 bool isCaps(char ch)
     8 {
     9     if(ch>='A'&&ch<='Z')
    10         return true;
    11     else
    12         return false;
    13 }
    14 int cnt[26];
    15 int main()
    16 {
    17     for(int i=0;i<4;i++)
    18         gets(s[i]);
    19     for(int i=0;i<4;i++)
    20     {
    21         for(int j=0;s[i][j]!='';j++)
    22         {
    23             if(!isCaps(s[i][j]))    continue;
    24             cnt[s[i][j]-'A']++;
    25         }
    26     }
    27     int maxn=-1;
    28     for(int i=0;i<26;i++)
    29     {
    30         maxn=max(maxn,cnt[i]);
    31     }
    32     for(int i=0;i<maxn;i++)
    33     {
    34         for(int j=0;j<51;j++)
    35         {
    36  
    37             if(j%2!=0)
    38             {
    39                 cout<<" ";
    40                 continue;
    41             }
    42             if(i+cnt[j/2]<maxn)
    43             {
    44                 cout<<" ";
    45                 continue;
    46             }
    47             cout<<"*";
    48         }
    49             cout<<endl;
    50     }
    51     for(int i=0;i<51;i++)
    52     {
    53         if(i%2!=0)  cout<<" ";
    54         else
    55             cout<<char(i/2+65);
    56     }
    57     cout<<endl;
    58     return 0;
    59 }
    View Code
    如有错误,请指正,感谢!
  • 相关阅读:
    在线api文档
    Android Studio 快捷键
    AtomicBoolean运用
    ubuntu下Pycharm安装及配置
    Pycharm Professional Edition 激活码(license)
    opengl中对glOrtho()函数的理解
    附加作业
    个人最终总结
    mysql
    创建数据库
  • 原文地址:https://www.cnblogs.com/scott527407973/p/9314619.html
Copyright © 2011-2022 走看看