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