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

蓝桥杯 Python 研究生组-2023-省赛-工作时长

蓝桥账户中心icon-default.png?t=N7T8https://www.lanqiao.cn/problems/3494/learning/

问题描述

小蓝手里有一份 20222022 年度自己的上班打卡记录文件,文件包含若干条打卡记录,每条记录的格式均为“yyyy-MM-dd HH:mm:ssyyyy-MM-dd HH:mm:ss”,即按照年-月-日 时:分:秒的形式记录着一个时间点(采用 2424 小时进制)。由于某些原因,这份文件中的时间记录并不是按照打卡的时间顺序记录的,而是被打乱了。但我们保证小蓝每次上班和下班时都会正常打卡,而且正好打卡一次,其它时候不会打卡。每一对相邻的上-下班打卡之间的时间就是小蓝本次的工作时长,例如文件内容如下的话:

2022-01-01 12:00:05
2022-01-02 00:20:05
2022-01-01 07:58:02
2022-01-01 16:01:35

表示文件中共包含了两段上下班记录,1)20222022-0101-0101 0707:5858:02∼202202∼2022-0101-0101 1212:0000:0505,工作时长为 1452314523 秒;2)20222022-0101-0101 1616:0101:35∼202235∼2022-0101-0202 0000:2020:0505,工作时长为 2991029910 秒;工作时长一共是 14523+29910=4443314523+29910=44433 秒。现在小蓝想知道在 20222022 年度自己的工作时长一共是多少秒?

思路

  1. 标准化数据结构:各两位数字分别表示年月日时分秒
  2. 按时间对数据排序
  3. 单数为上班打卡时间,双数为下班打卡时间,分别存入up/out两个矩阵,一一对应
  4. 每次工作时间为:上下班间隔天数*一天中的秒数 - 上班打卡时间对应秒数 + 下班打卡时间对应秒数
  5. 依次累加

代码

datas = []
up = []
out = []
daytime = 24*60*60
worktime = 0while True:data = input()if not data:breakdatas.append(''.join([data[2:4],data[5:7],data[8:10],data[11:13],data[14:16],data[17:19]]))datas.sort()for i, c in enumerate(datas):if i%2 == 0:up.append(c)else:out.append(c)for num in range(len(up)):days = int(out[num][0:6]) - int(up[num][0:6])uptime = int(up[num][6:8]) * 60 * 60 + int(up[num][8:10]) * 60 + int(up[num][10:12])outtime = int(out[num][6:8]) * 60 * 60 + int(out[num][8:10]) * 60 + int(out[num][10:12])timesum = days*daytime - uptime + outtimeworktime += timesumprint(worktime)

测试

数据集:labfile.oss.aliyuncs.com/courses/21074/records.txt

答案:5101913

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【传输层协议】UDP和TCP协议
  • 3年亏11亿元,博泰车联网没沾上汽车智能化的光?
  • 互联网医院系统源码与医保购药APP开发的完整技术指南
  • 常见离线语音识别模块功能说明——天问ASR;机芯智能;海凌科;轻语音
  • 【AI绘画】fal/AuraFlow-v0.2出现 delete the irrelevant ones 错误
  • Javaweb项目|ssm基于web的健身中心管理系统的的设计与实现jsp
  • media-server-代码解析-语法篇-01
  • 测试面试宝典(四十三)—— 接口测试流程
  • 代码随想录算法训练营第三十四天 | 62.不同路径、63. 不同路径 II、343. 整数拆分、96. 不同的二叉搜索树
  • MySQL是如何实现数据排序的
  • 预测各种开发语言的市场占比
  • 【过题记录】 8.2 hddx
  • 新浪微博笔试秋招管培笔试测评肯耐珂萨题型题库解析
  • 标题标签
  • 开源=最强大模型!Llama3.1发布,405B超越闭源GPT-4o,扎克伯格:分水岭时刻
  • 《深入 React 技术栈》
  • 【css3】浏览器内核及其兼容性
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • Bytom交易说明(账户管理模式)
  • HashMap剖析之内部结构
  • JavaScript 一些 DOM 的知识点
  • JavaScript设计模式之工厂模式
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • 从重复到重用
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 事件委托的小应用
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 找一份好的前端工作,起点很重要
  • FaaS 的简单实践
  • ​ssh免密码登录设置及问题总结
  • ​学习一下,什么是预包装食品?​
  • #android不同版本废弃api,新api。
  • #NOIP 2014#Day.2 T3 解方程
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • (2)空速传感器
  • (21)起落架/可伸缩相机支架
  • (7)svelte 教程: Props(属性)
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (附源码)php投票系统 毕业设计 121500
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (转) ns2/nam与nam实现相关的文件
  • (轉)JSON.stringify 语法实例讲解
  • ./configure,make,make install的作用(转)
  • .NET 4.0中的泛型协变和反变
  • .Net Core 微服务之Consul(二)-集群搭建
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET 常见的偏门问题
  • .net 怎么循环得到数组里的值_关于js数组
  • .NET建议使用的大小写命名原则
  • .NET框架类在ASP.NET中的使用(2) ——QA
  • .Net小白的大学四年,内含面经
  • .sh文件怎么运行_创建优化的Go镜像文件以及踩过的坑
  • ??在JSP中,java和JavaScript如何交互?
  • @Bean注解详解