【华为面试基础题】考勤信息

描述

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

  • absent:缺勤
  • late:迟到
  • leaveearly:早退
  • present:正常上班

现需根据员工出勤信息,判断本次是否能获得出勤奖,能获得出勤奖的条件如下:

  • 缺勤不超过一次;
  • 没有连续的迟到/早退;
  • 任意连续7次考勤,缺勤/迟到/早退不超过3次。

输入描述:

  • 用户的缺勤数据字符串,记录条数>=1;
  • 输入字符串长度<10000;
  • 不存在非法输入

如:

2
present
present absent present present leaveearly present absent

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

true false

示例1

输入:
2
present
present present
输出:
true true

def can_get_attendance_prize(attendance_str):
    attendance_list = attendance_str.split()
    absent_count = 0
    late_count = 0
    leaveearly_count = 0

    for attendance in attendance_list:
        if attendance == "absent":
            absent_count += 1
        elif attendance == "late":
            late_count += 1
        elif attendance == "leaveearly":
            leaveearly_count += 1

    if absent_count <= 1 and (late_count == 0 or leaveearly_count == 0) and (absent_count + late_count + leaveearly_count) <= 3:
        return True
    else:
        return False

attendance_str = "present present "
print(can_get_attendance_prize(attendance_str))
:该程序(Test.exe)用于统计、记录某单位全体员工一天的考勤情况。 输入:员工基本信息文件(文本文件)、全天出入记录的数据文件(文本文件) 1. 员工基本信息文件(参见employee.txt) 每行记录一位员工的基本信息,格式为:姓名,工号(例如:张三,34251),其中姓名(不超过20个字符)和工号(整型); 2. 全天出入记录的数据文件(参见log.txt) 该单位的门禁系统每天生成一个员工全天出入记录的数据文件,记录出入的工作人员工号、出入的时间以及出入类型(O:出,I:入), 记录按时间先后记录 文件中每行记录一次出或入的信息 每条记录的格式为:工号,时间,类型(例如:34251,08:30,I),其中时间格式为hh:mm。 程序要完成的功能 请通过程序读取员工基本信息文件和门禁系统全天出入记录的数据文件,计算各工作人员当天的总共在岗时间,并将结果保存至c:\result.txt文件中。要求结果中包含有姓名,工号,在岗时间等信息。 注:员工基本信息文件和数据文件的名称通过命令行参数的形式输入 (例如:Test.exe employee.txt log.txt)。 输出:员工在岗时间统计文件(文本文件) 员工在岗时间统计文件(参见result.txt) 文件中每行记录一位工作人员的在岗时间信息。 格式为:姓名,工号,在岗时间(例如:张三,34251,8小时10分钟)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值