题解 | #简单错误记录#

简单错误记录

https://www.nowcoder.com/practice/2baa6aba39214d6ea91a2e03dff3fbeb

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        ArrayList<Err> list = new ArrayList<>();
        while (in.hasNextLine()) {
            String nextLine = in.nextLine();
            //获取数据
            String[] s = nextLine.split(" ");
            String substring = s[0].substring(s[0].lastIndexOf("\\") + 1);
            substring = substring.length() > 16 ? substring.substring(
                            substring.length() - 16) : substring;
            //重复性校验 (保留最后16位)和行号完全匹配
            Boolean bool = true;
            for (Err err1 : list) {
                if (err1.getName().equals(substring) && err1.getLine()== Integer.valueOf(s[1])){
                    err1.setCount(err1.getCount() + 1);
                    bool = false;
                }
            }
            if (bool) {
                Err err = new Err();
                err.setName(substring);
                err.setLine(Integer.valueOf(s[1]));
                err.setCount(1);
                list.add(err);
            }
        }
        //输出最后八行
        for (int i = list.size() - 8; i < list.size(); i++) {
            if (i >= 0) {
                System.out.println(list.get(i));
            }
        }
    }

    private static class Err {

        private String name;
        private int line;
        private int count;

        public String toString() {
            return  name + " " + line + " " + count;
        }

        public Err() {
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public int getLine() {
            return line;
        }

        public void setLine(int line) {
            this.line = line;
        }

        public int getCount() {
            return count;
        }

        public void setCount(int count) {
            this.count = count;
        }
    }
}

解题思路:

1, 构建对象, 以便整理数据以及输出结果;

2, 记录新增时需要注意重复性校验;

3, 最终输出是注意仅需要输出最后8条记录

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务