华为OD机试 Python【考勤信息】

题目

公司用一个字符串来表示员工的出勤信息

  • absent:缺勤
  • ate:迟到
  • eaveearly:早退
  • present:正常上班

现需根据员工出勤信息,判断本次是否能获得出勤奖,能获得出勤奖的条件如下:
1、缺勤不超过一次;
2、没有连续的迟到/早退;
3、任意连续7次考勤,缺勤/迟到/早退不超过3次。

输入描述
用户的考勤数据字符串

  • 记录条数 >= 1;
  • 输入字符串长度 < 10000;
  • 不存在非法输入;

如:

2
present
present absent present present leaveearly present absent

输出描述
根据考勤数据字符串,如果能得到考勤奖,输出”true”;否则输出”false”,
对于输入示例的结果应为:

true false

解题思路

将员工的考勤数据字符串拆分为单个记录,然后依次检查每个记录。首先统计缺勤次数,如果超过一次则直接返回 false。接着检查是否有连续的迟到或早退,如果存在则返回 false。同时,滑动窗口检查每个连续的7天考勤记录,如果缺勤、迟到或早退的次数超过3次,则返回 false。最终,如果所有条件

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AlgorithmHero

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值