• P1598


      无语的是,我以为题目条件的‘在任何一行末尾不要打印不需要的多余空格’意思是每一行都只能到最后一个 '*' 出现就换行,然后用了 '',结果怎么都不过,于是看了题解,发现别人都没管这个 = =!!,于是我就去掉'',就绿了。

      下面代码就是加上判断'没有多余空格'的,去掉所有出现 space 的地方就可以了。

    #include <bits/stdc++.h>
    using namespace std;
    #define rep(i, a, b) for(int i = a; i < b; i++)
    #define min(a, b) ((a) < (b) ? (a) : (b))
    #define max(a, b) ((a) > (b) ? (a) : (b))
    #define index(a) (a - 'A')
    #define transUpp(a) (a - 32)
    #define transLow(a) (a + 32)
    #define ll long long
    #define PB push_back
    int gcd(int a, int b){return b == 0 ? a : gcd(a%b, a);}
    const int N = 1000010;
    int main(int n, char**v)
    {
        char letter[26], s[N];
        int m = -1, spaces;
        rep(i, 0, 26) letter[i] = 0;
        for (int i = 0; i < 4; i++)
        {
            fgets(s, N, stdin);
            for (int j = 0; s[j]; j++)
                if (s[j] >= 'A' && s[j] <= 'Z')
                {
                    letter[index(s[j])] += 1;
                    m = max(m, letter[index(s[j])]);
                }
        }
        for(int i = m; i > 0; i--)
        {
            spaces = 0;
            rep(j, 0, 26)
            {
                if (letter[j] == i)
                {
                    spaces = 0;
                    letter[j] -= 1;
                    cout << "* ";
                }
                else if (i > 0) cout << "  ";
                spaces += 1;
            }
            rep(j, 0, space) cout << '';
            cout << '
    ';
        }
        rep(i, 0, 26) cout << (char)(65 + i) << ' ';
        return 0;
    }
    

      

      

  • 相关阅读:
    05day02wdt
    05day02pwm
    05day01ioctl_led
    04clock_06semqphore
    04lock_05seqlock
    04lock_03rwlock
    [git]入门-工作区、暂存区、版本库
    [git]入门-创建版本库
    [linux-脚本]shebang(shabang #!)
    [ffmpeg]安装
  • 原文地址:https://www.cnblogs.com/darkchii/p/9640893.html
Copyright © 2020-2023  润新知