1. 程式人生 > >Vertical Histogram HDU - 2708 (字串)

Vertical Histogram HDU - 2708 (字串)

//以後要注意陣列多開大一點,,,,,本題主要在於輸出格式

 

#include <iostream>
#include <string>
#include <cstring>
#include <algorithm>
#include <stdio.h>

using namespace std;

char map[80][52];
int list[26];

int main()
{
    string str;
    while(getline(cin, str))
    {
        memset(list, 0, sizeof(list));
        memset(map, ' ', sizeof(map));
        
        for(int i = 0; i < str.length(); i++)
            if(str[i] >= 'A' && str[i] <= 'Z')
                list[str[i]-'A']++;
                
        for(int i = 0; i < 3; i++)
        {
            getline(cin, str);
            for(int j = 0; j < str.length(); j++)
                if(str[j] >= 'A' && str[j] <= 'Z')
                    list[str[j]-'A']++;
        }
            
        int tmp = 0;
        for(int i = 0; i < 26; i++)
            tmp = max(tmp, list[i]);
        
        int id = 0; 
        for(int i = 0; i < 51; i++)
        {
            if(i % 2)
                continue;
            for(int k = tmp-list[id]; k < tmp; k++)
                map[k][2*id] = '*';
            id++;
        }
        
        for(int i = 0; i < tmp; i++)
            for(int j = 50; j >= 0; j--)
            {
                if(map[i][j] == '*')
                {
                    map[i][j+1] = '\0';
                    break;
                }
            }
        
        for(int i = 0; i < tmp; i++)
            printf("%s\n", map[i]);
        printf("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\n");
    }
        
    return 0;
}