POJ 2800 垂直直方图 解题报告

POJ 2800 垂直直方图 解题报告

编号:2800

 

考查点:简单计算题

 

思路: 用gets()读入4行数据,然后按字符统计,显示的时候有点小处理即可.

提交情况: 感觉POJ的测试数据有点骗人,特殊字符好像不止那三个,导致我Runtime Error了几次,改了字符是否是字母的判断条件就AC.

 

Source Code

 


//POJ Grids 2800
#include <string>
#include 
<iostream>
using namespace std;

int num[26];

int main()
{
    
char str[200];
    
for (int i=0;i<4;i++)
    {
        memset(str,
0,sizeof str);
        gets(str);
        
int len = strlen(str);
        
for (int j=0;j<len;j++)
        {
            
if (str[j]>='A'&&str[j]<='Z')
            {
                num[str[j]
-'A']++;
            }
        }
    }
    
int max = 0;
    
for (int i=0;i<26;i++)
    {
        
if (num[i]>max)
        {
            max 
= num[i];
        }
    }
    
for (int i=max;i>0;i--)
    {
        
for (int j=0;j<26;j++)
        {
            
if (num[j]>=i)
                cout
<<"";
            
else
                cout
<<"  ";
        }
        cout
<<endl;
    }
    
for (int i=0;i<26;i++)
    {
        cout
<<(char)('A'+i)<<" ";
    }
    cout
<<endl;
    
return 0;
}

总结: 这个应该是最近做的一道比较不水的题了,虽然也很水.还有,本子出了点问题,严重影响做题.

 

                                                       By   Ns517

                                                      Time 09.02.26

posted @ 2009-02-27 22:47  端木  阅读(1167)  评论(0编辑  收藏  举报