您当前的位置: 首页 >  Java

星拱北辰

暂无认证

  • 0浏览

    0关注

    1205博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

计数后打印垂直柱状图(洛谷P1598题题解,Java语言描述)

星拱北辰 发布时间:2020-01-21 11:54:02 ,浏览量:0

前言

这题挺好玩的,打印出来颇有老式MP4播放 ♪Music♪ 的感觉

题目要求

P1598题目链接

在这里插入图片描述

分析

这题看着挺爽,问题是怎么实现呢?

我们先是要读进来这四行数据(题干说了就是4行),然后变为char[],进行一下大写字母字符的过滤,计数结果装在长度为26的int[]里。

我们想知道有多少行,就必须知道最多的counter。 根据数据结构里学的内置size属性等操作,我们可以直接在添加的时候更新max变量,这样就不用在全部计数完成以后再次遍历数组啦。 当然本题int[]长度只有26,怎么做都可以啦。

打印的时候就要进行一下简单计算了,最后除去尾部的多余空格即可。 具体细节请看代码~~

AC代码(Java语言描述)
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int[] char_counter = new int[26];
        int max = 0;
        //统计数据
        for (int i = 0; i = 'A' && c  max) {
                        //置新最大数值
                        max = temp_counter;
                    }
                }
            }
        }
        scanner.close();
        //处理打印
        for (int i = max-1; i >= 0; i--) {
            StringBuilder builder = new StringBuilder();
            for (int j : char_counter) {
                if (j - i > 0) {
                    builder.append("* ");
                } else {
                    builder.append("  ");
                }
            }
            //去除尾部空格
            System.out.println(builder.substring(0, builder.length()-1));
        }
        System.out.println("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");
    }
}

在这里插入图片描述

怎么样?蛮酷的吧,快来试试吧!!
关注
打赏
1660750074
查看更多评论
立即登录/注册

微信扫码登录

0.0499s