题目描述
公司对员工的手机打卡记录进行异常排查。如果出现以下两种情况之一,则认为打卡异常
1.实际设备号与注册设备号不一样
2.同一个员工的两个打卡记录的时间小于60分钟并且打卡距离超过5km。
给定打卡记录的字符串数组clockRecords
(每个打卡记录组成为: 工号:时间 (分钟);打距离(km);实际设备号;注册设备号),返回其中异常的打卡记录
输入
2
100000,10,1,ABCD,ABCD
100000,50,10,ABCD,ABCD
输出
100000,10,1,ABCD,ABCD;100000,50,10,ABCD,ABCD
解题思路
将打卡记录转换为Record
对象,并判断实际设备号与注册设备号是否相同。如果不相同,将记录标记为异常。
比较打卡记录之间的时间和距离:遍历所有打卡记录,如果同一个员工有2条打卡记录,比较它们之间的时间差和距离差。如果时间差小于60分钟,且距离差大于5公里,将这两条记录标记为异常。
参考代码
import