当前位置: 首页 > news >正文

【华为OD机考】华为OD笔试真题解析(15)--异常的打卡记录

题目描述

考勤记录是分析和考核职工工作时间利用情况的原始依据,也是计算职工工资的原始依据,为了正确地计算职工工资和监督工资基金使用情况,公司决定对员工的手机打卡记录进行异常排查。

如果出现以下两种情况,则认为打卡异常:

  1. 实际设备号与注册设备号不一样;
  2. 同一个员工的两个打卡记录的时间小于60分钟并且打卡距离超过5km。

给定打卡记录的字符串数组clockRecords(每个打卡记录组成为:工号、时间(分钟)、打卡距离(km)、实际设备号、注册设备号),返回其中异常的打卡记录(按输入顺序输出)。

输入描述

第一行输入为N,表示打卡记录数;之后的N行表示打卡记录,每一行表示一条打卡记录。

例如:

2
100000,10,1,ABCD,ABCD
100000,50,10,ABCD,ABCD

输出描述

输出为异常的打卡记录,例如:

100000,10,1,ABCD,ABCD;100000,50,10,ABCD,ABCD

备注

  1. clockRecords长度 <= 1000
  2. clockRecords[i]格式:{id},{time},{distance},{actualDeviceNumber},{registeredDeviceNumber}
  3. id由6位数字组成
  4. time由整数组成,范围为0~1000
  5. distance由整数组成,范围为0~100
  6. actualDeviceNumberregisteredDeviceNumber由4位大写字母组成

示例描述

示例一

输入:

2
100000,10,1,ABCD,ABCD
100000,50,10,ABCD,ABCD

输出:

100000,10,1,ABCD,ABCD;100000,50,10,ABCD,ABCD

说明:
第一条记录是异常的,因为第二条记录与它的间隔不超过60分钟,但是打卡距离超过了5km,同理第二条记录也是异常的。

示例二

输入:

2
100000,10,1,ABCD,ABCD
100000,80,10,ABCE,ABCD

输出:

100000,80,10,ABCE,ABCD

说明:
第二条记录的注册设备号与打卡设备号不一致,所以是异常记录。

示例三

输入:

2
100000,10,1,ABCD,ABCD
100000,80,10,ABCE,ABCE

输出:

null

说明:
无异常打卡记录,所以返回null

解题思路

  1. 用对象EmployeeRecord存储打卡记录,并先判断实际设备号与注册设备号是否一致。
  2. 将打卡记录存储在对象列表中
  3. 遍历打卡记录的列表:
    • 计算打卡时间
    • 计算打卡距离
    • 如果两个打卡记录时间小于60,并且打卡距离超过5km,打卡异常,设置vaildFalse
  4. 得到打卡异常的记录并返回字符串。

解题代码

def solve_method(clock_records):employee_records = []for record in clock_records:employee_record = EmployeeRecord(record[0], record[1], record[2], record[3], record[4])employee_record.set_vaild(employee_record.check_device_number())employee_records.append(employee_record)for i in range(len(employee_records)):for j in range(i + 1, len(employee_records)):if employee_records[i].id == employee_records[j].id:# 计算打卡时间time_diff = abs(employee_records[i].time - employee_records[j].time)# 计算打卡距离distance_diff = abs(employee_records[i].distance - employee_records[j].distance)# 如果两个打卡记录时间小于60,并且打卡距离超过5km,打卡异常if time_diff < 60 and distance_diff > 5:employee_records[i].vaild = Falseemployee_records[j].vaild = False# 得到打卡异常的记录result = ";".join(str(record) for record in employee_records if not record.vaild)return "null" if len(result) == 0 else resultclass EmployeeRecord:def __init__(self, id, time, distance, actual_device_number, registered_device_number):self.id = idself.time = timeself.distance = distanceself.actual_device_number = actual_device_numberself.registered_device_number = registered_device_number# 打卡是否合法self.vaild = Truedef set_vaild(self, vaild):self.vaild = vailddef __str__(self):return f"{self.id},{self.time},{self.distance},{self.actual_device_number},{self.registered_device_number}"def check_device_number(self):# 实际设备号与注册设备号不一致,打卡异常if self.actual_device_number == self.registered_device_number:return Truereturn Falseif __name__ == '__main__':clockRecords = [["100000", 10, 1, "ABCD", "ABCD"],["100000", 50, 10, "ABCD", "ABCD"]]assert solve_method(clockRecords) == "100000,10,1,ABCD,ABCD;100000,50,10,ABCD,ABCD"clockRecords = [["100000", 10, 1, "ABCD", "ABCD"],["100000", 80, 10, "ABCE", "ABCD"]]assert solve_method(clockRecords) == "100000,80,10,ABCE,ABCD"clockRecords = [["100000", 10, 1, "ABCD", "ABCD"],["100000", 80, 10, "ABCE", "ABCE"]]assert solve_method(clockRecords) == "null"

在这里插入图片描述

相关文章:

【华为OD机考】华为OD笔试真题解析(15)--异常的打卡记录

题目描述 考勤记录是分析和考核职工工作时间利用情况的原始依据&#xff0c;也是计算职工工资的原始依据&#xff0c;为了正确地计算职工工资和监督工资基金使用情况&#xff0c;公司决定对员工的手机打卡记录进行异常排查。 如果出现以下两种情况&#xff0c;则认为打卡异常…...

跟我学C++中级篇——定时器的设计

一、定时器 谈到定时器&#xff0c;理论上讲是各种语言和各种设计都无法避开的一个技术点。对于定时器来说&#xff0c;表面上就是一种时间间隔的处理约定&#xff0c;但对程序来说&#xff0c;可能就是设计层面、接口层面和库或框架以及系统应用的一个大集合。不同的系统&…...

HTTP 请求时传递多部分表单数据

HTTP 请求时传递多部分表单数据&#xff08;multipart/form-data&#xff09; --data-raw $------demo11111\r\nContent-Disposition: form-data; name"Filedata"; filename"截屏2025-02-27 15.45.46.png"\r\nContent-Type: image/png\r\n\r\n\r\n------d…...

第J3-1周:DenseNet算法 实现乳腺癌识别

文章目录 一、前言二、前期准备1.设置GPU2.划分数据集 三、搭建网络模型1.DenseLayer模块2.DenseBlock模块3.Transition模块4.构建DenseNet5.构建densenet121 四、训练模型1.编写训练函数2.编写测试函数3.正式训练 五、结果可视化1.Loss与Accuracy图2.模型评估 总结&#xff1a…...

Mac 版 本地部署deepseek ➕ RAGflow 知识库搭建流程分享(附问题解决方法)

安装&#xff1a; 1、首先按照此视频的流程一步一步进行安装&#xff1a;(macos版&#xff09;ragflowdeepseek 私域知识库搭建流程分享_哔哩哔哩_bilibili 2、RAGflow 官网文档指南&#xff1a;https://ragflow.io 3、RAGflow 下载地址&#xff1a;https://github.com/infi…...

【解决】OnTriggerEnter/OnTriggerExit 调用匿名委托误区的问题

开发平台&#xff1a;Unity 开发语言&#xff1a;CSharp 6.0 开发工具&#xff1a;Visual Studio 2022   问题背景 public void OnTriggerEnter(Collider collider) {output.OnInteractionNoticed () > OnInteractionTriggered?.Invoke(); }public void OnTriggerExit(C…...

vscode集成DeepSeek

vscode 扩展 安装 Cline Meet Cline&#xff0c;一个可以使用你的CLI和编辑器的AI助手。 得益于 Claude 3.5 Sonnet的代理编码功能&#xff0c;Cline 可以逐步处理复杂的软件开发任务。借助让他创建和编辑文件、探索大型项目、使用浏览器和执行终端命令(在您授予权限后)的工具&…...

MapReduce编程模型

MapReduce编程模型 理解MapReduce编程模型独立完成一个MapReduce程序并运行成功了解MapReduce工程流程掌握并描述出shuffle全过程&#xff08;面试&#xff09;独立编写课堂及作业中的MR程序理解并解决数据倾斜 1. MapReduce编程模型 Hadoop架构图 Hadoop由HDFS分布式存储、M…...

SQL server2022的详细安装流程以及简单使用

鉴于SQL Server2008R2版本过于老旧&#xff0c;本文主要讲述如何安装SQL Server 2022。 本文主要详细介绍SQL server2022的详细安装流程以及简单使用&#xff0c;以《数据库系统概论&#xff08;第5版&#xff09;》的第79页—第80页为例&#xff0c;详细介绍如何使用SQL serv…...

Linux的诞生:一场自由与协作的技术革命

Linux的诞生&#xff1a;一场自由与协作的技术革命 在今天的互联网世界&#xff0c;Linux几乎无处不在——从智能手机&#xff08;Android内核&#xff09;到超级计算机&#xff0c;从云计算平台到家用路由器&#xff0c;它的身影渗透在技术的各个角落。但这样一个改变世界的操…...

Pytorch为什么 nn.CrossEntropyLoss = LogSoftmax + nn.NLLLoss?

为什么 nn.CrossEntropyLoss LogSoftmax nn.NLLLoss&#xff1f; 在使用 PyTorch 时&#xff0c;我们经常听说 nn.CrossEntropyLoss 是 LogSoftmax 和 nn.NLLLoss 的组合。这句话听起来简单&#xff0c;但背后到底是怎么回事&#xff1f;为什么这两个分开的功能加起来就等于…...

Go入门之文件

以只读方式打开文件 package mainimport ("fmt""io""os" )func main() {file, err : os.Open("./main.go")defer file.Close()if err ! nil {fmt.Println(err)return}fmt.Println(file)var tempSlice make([]byte, 128)var strSlice…...

基因型—环境两向表数据分析——品种生态区划分

参考资料&#xff1a;农作物品种试验数据管理与分析 用于品种生态区划分的GGE双标图有两种功能图&#xff1a;试点向量功能图和“谁赢在哪里”功能图。双标图的具体模型基于SD定标和h加权和试点中心化的数据。本例中籽粒产量的GGE双标图仅解释了G和GE总变异的53.6%&#xff0c;…...

Leetcode2414:最长的字母序连续子字符串的长度

题目描述&#xff1a; 字母序连续字符串 是由字母表中连续字母组成的字符串。换句话说&#xff0c;字符串 "abcdefghijklmnopqrstuvwxyz" 的任意子字符串都是 字母序连续字符串 。 例如&#xff0c;"abc" 是一个字母序连续字符串&#xff0c;而 "ac…...

React(12)案例前期准备

1、创建项目 npx creat-react-app xxx 这里注意 react版本过高会导致antd组件无法安装 需要手动修改pagejson文件中的react和react-demo版本号为 18.2.0 npm i 在配置别名路径 创建craco文件 const path require("path"); module.exports {webpack: {alias: …...

2025年2月28日(RAG)

从图片中的内容来看&#xff0c;用户提到的“RAG”实际上是“Retrieval-Augmented Generation”的缩写&#xff0c;中文称为“检索增强生成”。这是一种结合了检索&#xff08;Retrieval&#xff09;和生成&#xff08;Generation&#xff09;的技术&#xff0c;用于增强自然语…...

python-leetcode-寻找重复数

287. 寻找重复数 - 力扣&#xff08;LeetCode&#xff09; class Solution:def findDuplicate(self, nums: List[int]) -> int:# Step 1: 找到环的相遇点slow nums[0]fast nums[0]# 使用快慢指针&#xff0c;直到相遇while True:slow nums[slow] # 慢指针走一步fast nu…...

Vue 3 中,如果 public 目录下的 .js 文件中有一个函数执行后生成数据,并希望将这些数据传递到组件中

在 Vue 3 中&#xff0c;如果 public 目录下的 .js 文件中有一个函数执行后生成数据&#xff0c;并希望将这些数据传递到组件中&#xff0c;可以使用 window.postMessage&#xff0c;但需要结合具体场景。以下是不同方法的详细说明&#xff1a; 方法 1&#xff1a;使用 window…...

ai大模型自动化测试-TensorFlow Testing 测试模型实例

AI大模型自动化测试是确保模型质量、可靠性和性能的关键环节,以下将从测试流程、测试内容、测试工具及测试挑战与应对几个方面进行详细介绍: 测试流程 测试计划制定 确定测试目标:明确要测试的AI大模型的具体功能、性能、安全性等方面的目标,例如评估模型在特定任务上的准…...

初阶MySQL(两万字全面解析)

文章目录 1.初识MySQL1.1数据库1.2查看数据库1.3创建数据库1.4字符集编码和排序规则1.5修改数据库1.6删除数据库 2.MySQL常用数据类型和表的操作2.(一)常用数据类型1.数值类2.字符串类型3.二进制类型4.日期类型 2.(二)表的操作1查看指定库中所有表2.创建表 3.查看表结构和查看表…...

2026年亲测一键生成论文工具指南(高效定稿版)

为解决学术写作中效率与合规两大核心痛点&#xff0c;本文精选8款高适配性AI论文写作工具&#xff08;按综合优先级排序&#xff09;&#xff0c;围绕中文学术规范适配、真实参考文献生成、格式标准化、高性价比四大核心维度筛选&#xff0c;同时配套分场景精准选型方案与学术合…...

揭秘DeepSeek千万级语料构建全流程:从原始网页采集到高质量token化,97.3%过滤率背后的硬核实践

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;DeepSeek训练数据准备 DeepSeek系列大模型的训练质量高度依赖于数据的规模、多样性与清洗精度。训练数据并非简单堆叠原始网页或文本&#xff0c;而是经过多阶段筛选、去重、毒性过滤与格式标准化的结构…...

ClamAV更新失败真相:DNS TXT协议与版本兼容性解析

1. 这不是网络连通性问题&#xff0c;而是ClamAV更新机制被误读的典型现场“Can’t query current.cvd.clamav.net”这个报错&#xff0c;几乎每个在Linux服务器上维护过ClamAV的人都见过。它第一次出现时&#xff0c;90%的运维会立刻去ping、curl、telnet current.cvd.clamav.…...

一直怕大模型幻觉,发现针对性harness约束能大大消除

我让AI写长文&#xff0c;然后人工审核&#xff0c;发现大量胡编乱造。 如果人工一个个消除&#xff0c;实在太累了&#xff0c;这就不是LLM自动化办公的路子了 尝试了 harness (engineering)的实操路子&#xff0c; 试用发现&#xff1a; 大模型正在把长文中我人工审核发现的幻…...

【DeepSeek本地部署终极指南】:20年AI工程师亲测的5步零失败落地法(含GPU资源优化秘籍)

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;DeepSeek本地部署的底层逻辑与价值重定义 DeepSeek系列大模型的本地化部署&#xff0c;本质上是对AI能力所有权、数据主权与计算自主权的三重回归。它并非简单地将远程API替换为本地服务&#xff0c;而是重构…...

如何构建高效笔记系统:解锁OneNote智能编辑新体验

如何构建高效笔记系统&#xff1a;解锁OneNote智能编辑新体验 【免费下载链接】NoteWidget Markdown add-in for Microsoft Office OneNote 项目地址: https://gitcode.com/gh_mirrors/no/NoteWidget 在数字时代&#xff0c;高效的知识管理已成为专业人士的核心竞争力。…...

Termux-X免Root移动渗透工作台实战指南

1. 这不是“手机装Kali”的噱头&#xff0c;而是真能干活的移动渗透工作台很多人第一次看到“Termux-X”和“Kali NetHunter免Root”这两个词组合在一起时&#xff0c;第一反应是&#xff1a;又一个标题党&#xff1f;毕竟过去几年里&#xff0c;“安卓跑Kali”“手机当渗透主机…...

从岭回归到Lasso:正则化原理、稀疏性与ADMM算法实践

1. 项目概述&#xff1a;从岭回归到Lasso的深度解析在机器学习和统计建模的实践中&#xff0c;我们常常面临一个核心矛盾&#xff1a;模型在训练数据上表现优异&#xff0c;但在未见过的数据上却一塌糊涂&#xff0c;这就是所谓的“过拟合”。想象一下&#xff0c;你为了记住一…...

【工信部备案级新闻稿生成协议】:ChatGPT输出自动匹配《新闻采编规范》第4.2.1条的7层校验模板

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;【工信部备案级新闻稿生成协议】的合规性定位与政策背景 【工信部备案级新闻稿生成协议】并非独立行政规章&#xff0c;而是对《互联网信息服务算法推荐管理规定》《生成式人工智能服务管理暂行办法》…...

Poppins字体:终极多语言开源字体解决方案,9种字重+天城文支持

Poppins字体&#xff1a;终极多语言开源字体解决方案&#xff0c;9种字重天城文支持 【免费下载链接】Poppins Poppins, a Devanagari Latin family for Google Fonts. 项目地址: https://gitcode.com/gh_mirrors/po/Poppins 还在为多语言项目寻找完美的字体解决方案吗…...