百练OJ:2800:垂直直方图
2017-07-23 12:03
211 查看
题目连接:
http://bailian.openjudge.cn/practice/2800/描述:输入4行全部由大写字母组成的文本,输出一个垂直直方图,给出每个字符出现的次数。注意:只用输出字符的出现次数,不用输出空白字符,数字或者标点符号的输出次数。
输入:输入包括4行由大写字母组成的文本,每行上字符的数目不超过80个。
输出:输出包括若干行。其中最后一行给出26个大写英文字母,这些字母之间用一个空格隔开。前面的几行包括空格和星号,每个字母出现几次,就在这个字母的上方输出一个星号。注意:输出的第一行不能是空行。
解题思路
本题思路:首先统计字符出现次数,然后创建矩阵,将该形式转换到矩阵当中。尤其要注意的是,在java中,对于没有赋值的char矩阵直接输出是不符合要求的。要输出真真正正的空格。解题代码
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input =new Scanner(System.in); String str=""; String str1=input.nextLine(); String str2=input.nextLine(); String str3=input.nextLine(); String str4=input.nextLine(); str=str1+str2+str3+str4; int n=str.length(); int[] lists=new int[26]; for(int i=0;i<n;i++){ if(str.charAt(i)>='A'&&str.charAt(i)<='Z'){ lists[str.charAt(i)-'A']++; } } int max=0; for(int i=0;i<26;i++){ if(lists[i]>max){ max=lists[i]; } } char [][] c=new char [max+1][26]; for(int j=0;j<26;j++){ c[max][j]=(char) (j+'A'); } for(int l=0;l<26;l++){ for(int k=max-1;k>=max-lists[l];k--){ c[k][l]='*'; } } for(int a=0;a<max;a++){ for(int b=0;b<26;b++){ if(c[a][b]=='*'){ System.out.print(c[a][b]+" "); } else{ System.out.print(" "); } } System.out.println(); } for(int j=0;j<26;j++){ System.out.print((char) (j+'A')+" "); } input.close(); } }
相关文章推荐
- POJ 2800 垂直直方图 解题报告
- POJ 百炼 保研机试 2800:垂直直方图
- 百练2800:垂直直方图
- 读取带空格字符串时候可以用while((c=getchar())!='\n') 2800:垂直直方图
- poj 百练2800 垂直直方图
- 百练2800:垂直直方图题解
- poj&nbsp;百炼&nbsp;2800:垂直直方图
- C语言打印直方图(垂直方向)
- 垂直直方图
- C语言打印水平直方图或者垂直直方图
- 打印输入中单词长度的直方图(垂直方向的直方图)
- 练习1-13 编写一个程序,打印输入中单词长度的垂直方向的直方图(垂直图)
- 04-垂直直方图
- Python:使用pycha快速绘制办公常用图(饼图、垂直直方图、水平直方图、散点图等七种图形)
- Python:使用pycha快速绘制办公常用图(饼图、垂直直方图、水平直方图、散点图等七种图形)
- 垂直直方图
- 打印输入单词长度的直方图 (垂直方向)
- 百练之垂直直方图
- Python:使用pycha快速绘制办公常用图(饼图、垂直直方图、水平直方图、散点图等七种图形)
- 打印输入中单词长度的直方图(垂直打印)