华为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(";");
                }
            }
        }
    }
}
相关推荐
邓不利东20 分钟前
Spring中过滤器和拦截器的区别及具体实现
java·后端·spring
witton38 分钟前
Go语言网络游戏服务器模块化编程
服务器·开发语言·游戏·golang·origin·模块化·耦合
草履虫建模1 小时前
Redis:高性能内存数据库与缓存利器
java·数据库·spring boot·redis·分布式·mysql·缓存
苹果醋31 小时前
Vue3组合式API应用:状态共享与逻辑复用最佳实践
java·运维·spring boot·mysql·nginx
枯萎穿心攻击1 小时前
ECS由浅入深第三节:进阶?System 的行为与复杂交互模式
开发语言·unity·c#·游戏引擎
Jerry Lau1 小时前
go go go 出发咯 - go web开发入门系列(一) helloworld
开发语言·前端·golang
nananaij1 小时前
【Python基础入门 re模块实现正则表达式操作】
开发语言·python·正则表达式
Micro麦可乐1 小时前
Java常用加密算法详解与实战代码 - 附可直接运行的测试示例
java·开发语言·加密算法·aes加解密·rsa加解密·hash算法
掉鱼的猫2 小时前
Java MCP 鉴权设计与实现指南
java·openai·mcp
天下一般2 小时前
go入门 - day1 - 环境搭建
开发语言·后端·golang