华为OD机考-异常的打卡记录-字符串(JAVA 2025B卷)



java 复制代码
public class AbnormalAttendance {

    static class Attendance{
        String id;
        Integer time;
        Integer distance;
        String actualDeviceNumber;
        String registeredDeviceNumber;

        public Attendance(String id, Integer time, Integer distance, String actualDeviceNumber, String registeredDeviceNumber) {
            this.id = id;
            this.time = time;
            this.distance = distance;
            this.actualDeviceNumber = actualDeviceNumber;
            this.registeredDeviceNumber = registeredDeviceNumber;
        }

        public String getId() {
            return id;
        }

        public void setId(String id) {
            this.id = id;
        }

        public Integer getTime() {
            return time;
        }

        public void setTime(Integer time) {
            this.time = time;
        }

        public Integer getDistance() {
            return distance;
        }

        public void setDistance(Integer distance) {
            this.distance = distance;
        }

        public String getActualDeviceNumber() {
            return actualDeviceNumber;
        }

        public void setActualDeviceNumber(String actualDeviceNumber) {
            this.actualDeviceNumber = actualDeviceNumber;
        }

        public String getRegisteredDeviceNumber() {
            return registeredDeviceNumber;
        }

        public void setRegisteredDeviceNumber(String registeredDeviceNumber) {
            this.registeredDeviceNumber = registeredDeviceNumber;
        }
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            int N = sc.nextInt();
            sc.nextLine();
//            2
//            {id},{time},{distance},{actualDeviceNumber},{registeredDeviceNumber}
//            100000,10,1,ABCD,ABCD
//            100000,50,10,ABCD,ABCD
            List<String> list = new ArrayList<>(N);
            for(int i=0;i<N;i++){
                String nextLine = sc.nextLine();
                list.add(nextLine);
            }
            solve(list,N);
        }
    }
    public static void solve(List<String> list,int N){
        List<Attendance> attendanceList = new ArrayList<>(N);
        for(String line:list){
            String[] split = line.split(",");
            Attendance attendance = new Attendance(split[0], Integer.parseInt(split[1]), Integer.parseInt(split[2]), split[3], split[4]);
            attendanceList.add(attendance);
        }
        List<Integer> index = new ArrayList<>(N);
        for(int i=0;i<N;i++){
            Attendance attendance = attendanceList.get(i);
            if(!attendance.getRegisteredDeviceNumber().equals(attendance.getActualDeviceNumber())){
                index.add(i);
            }
            for(int j=i+1;j<N;j++){
                Attendance attendance1 = attendanceList.get(j);
                if(Math.abs(attendance1.getTime()-attendance.getTime())<=60 && Math.abs(attendance1.getDistance()-attendance.getDistance())>5){
                    index.add(i);
                    index.add(j);
                }
            }
        }
        List<Integer> collect = index.stream().distinct().collect(Collectors.toList());
        if(collect.isEmpty()){
            System.out.println("null");
        }else{
            for(int i=0;i<collect.size();i++){
                System.out.print(list.get(collect.get(i)));
                if(i!=collect.size()-1){
                    System.out.print(";");
                }
            }
        }
    }
}
相关推荐
Boilermaker19926 小时前
[Java 并发编程] Synchronized 锁升级
java·开发语言
Cherry的跨界思维6 小时前
28、AI测试环境搭建与全栈工具实战:从本地到云平台的完整指南
java·人工智能·vue3·ai测试·ai全栈·测试全栈·ai测试全栈
MM_MS6 小时前
Halcon变量控制类型、数据类型转换、字符串格式化、元组操作
开发语言·人工智能·深度学习·算法·目标检测·计算机视觉·视觉检测
꧁Q༒ོγ꧂7 小时前
LaTeX 语法入门指南
开发语言·latex
njsgcs7 小时前
ue python二次开发启动教程+ 导入fbx到指定文件夹
开发语言·python·unreal engine·ue
alonewolf_997 小时前
JDK17新特性全面解析:从语法革新到模块化革命
java·开发语言·jvm·jdk
一嘴一个橘子7 小时前
spring-aop 的 基础使用(啥是增强类、切点、切面)- 2
java
sheji34167 小时前
【开题答辩全过程】以 中医药文化科普系统为例,包含答辩的问题和答案
java
古城小栈7 小时前
Rust 迭代器产出的引用层数——分水岭
开发语言·rust
ghie90907 小时前
基于MATLAB的TLBO算法优化实现与改进
开发语言·算法·matlab