POJ NOI0113-04 垂直直方图(Bailian2800)
2017-04-18 23:04
281 查看
问题链接:POJ NOI0113-04 垂直直方图。
原题出处:Bailian2800 垂直直方图。
总时间限制:1000ms内存限制: 65536kB描述
输入4行全部由大写字母组成的文本,输出一个垂直直方图,给出每个字符出现的次数。注意:只用输出字符的出现次数,不用输出空白字符,数字或者标点符号的输出次数。
输入输入包括4行由大写字母组成的文本,每行上字符的数目不超过80个。输出输出包括若干行。其中最后一行给出26个大写英文字母,这些字母之间用一个空格隔开。前面的几行包括空格和星号,每个字母出现几次,就在这个字母的上方输出一个星号。注意:输出的第一行不能是空行。样例输入
样例输出
来源翻译自USACO 2003 February Orange的试题。
问题分析
统计四行输入的大写字母,根据统计结果输出柱状图。
该问题的关键是需要一定的想象力,将统计数据转换成相应的图形。
需要注意的一点是,如果出现次数最多字符的出现次数为max,则输出max行。这是关键的地方。
程序说明
(略)。
参考链接:POJ2136 Vertical Histogram。
AC的C++语言程序:
原题出处:Bailian2800 垂直直方图。
总时间限制:1000ms内存限制: 65536kB描述
输入4行全部由大写字母组成的文本,输出一个垂直直方图,给出每个字符出现的次数。注意:只用输出字符的出现次数,不用输出空白字符,数字或者标点符号的输出次数。
输入输入包括4行由大写字母组成的文本,每行上字符的数目不超过80个。输出输出包括若干行。其中最后一行给出26个大写英文字母,这些字母之间用一个空格隔开。前面的几行包括空格和星号,每个字母出现几次,就在这个字母的上方输出一个星号。注意:输出的第一行不能是空行。样例输入
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
来源翻译自USACO 2003 February Orange的试题。
问题分析
统计四行输入的大写字母,根据统计结果输出柱状图。
该问题的关键是需要一定的想象力,将统计数据转换成相应的图形。
需要注意的一点是,如果出现次数最多字符的出现次数为max,则输出max行。这是关键的地方。
程序说明
(略)。
参考链接:POJ2136 Vertical Histogram。
AC的C++语言程序:
/* POJ2136 Vertical Histogram */ #include <iostream> #include <string> #include <cstring> #include <cctype> using namespace std; const int MAXN = 26; int acount[MAXN]; int main() { int linecount, max; string s; memset(acount, 0, sizeof(acount)); linecount = 0; while (getline(cin, s)) { // 统计字母 for(int i=0; i<(int)s.size(); i++) // if(isalpha(s[i])) // acount[s[i] - 'A']++; if(isupper(s[i])) acount[s[i] - 'A']++; // 每4行输出一次结果 if(++linecount == 4) { linecount = 0; // 计算最大的统计值 max = 0; for(int i=0; i<MAXN; i++) if(acount[i] > max) max = acount[i]; // 输出max行 for(int i=max; i>0; i--) { for(int j=0; j<MAXN; j++) { if(acount[j] >= i) cout << "* "; else cout << " "; } cout << endl; } for(int i=0; i<MAXN; i++) cout << (char)('A' + i) << " "; cout << endl; } } return 0; }
相关文章推荐
- 04:垂直直方图
- 04:垂直直方图
- 倒计时四天——04:垂直直方图
- 04:垂直直方图
- 04-垂直直方图
- 04-垂直直方图
- 04-垂直直方图
- 04-垂直直方图
- 垂直直方图
- 6:垂直直方图
- CSS学习笔记04-垂直居中-内容居中-单行.html
- cocosStudio的使用-04-PageView无法垂直滑动解决办法
- 使用pycha快速绘制办公常用图(饼图、垂直直方图、水平直方图、散点图等七种图形)
- POJ 百炼 保研机试 2800:垂直直方图
- 百练2800:垂直直方图
- POJ 2800 垂直直方图 解题报告
- 百练OJ:2800:垂直直方图
- 习题1-13(垂直方向直方图):编写一个程序打印输入中单词长度的垂直方向的直方图。
- poj 百练2800 垂直直方图
- 打印输入中单词长度的直方图(垂直方向的直方图)