华为OD机试题:出勤奖的判断

题目描述:

公司用一个字符串来标识员工的出勤信息。
absent: 缺勤
late: 迟到
leaveearly:早退
present: 正常上班
现需根据员工出勤信息,判断本次是否能获得出勤奖。


能获得出勤奖的条件如下:
缺勤不超过1次
没有连续的迟到/早退
任意连续7次考勤 缺勤/迟到/早退 不超过3次



输入描述:

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



输出描述:

根据考勤数据字符串,如果能得到考勤奖输出true否则输出false。



示例

输入:

2
present
present present
输出:true true

输入:

2
present
present absent present present leaveearly present absent
输出:true false

 #解题想法:条件1判断通过str.count()统计出现次数,条件2通过
("late late" in s) or ("leaveearly leaveearly" in s)来判断是否连续存在迟到/早退
条件3,通过i:i+7的片段来统计缺勤/迟到/早退的次数超过三次不

 while 1:
        try:
           # s=input()

           flag=True
           s="present absent present present leaveearly present absent"
           l=s.split(" ")
           if l.count("absent")>1:
               flag=False
               print("false1")

           if ("late late" in s) or ("leaveearly leaveearly" in s):
               flag = False
               print("false2")
           if len(l)<=7:
               sum=0
               for i in ["absent","late","leaveearly"]:
                   sum+=l.count(i)
               if sum>=3:
                   flag = False
                   print("false3")

           else:
               i=0
               while i+6<len(l):
                   sum = 0
                   for j in ["absent", "late", "leaveearly"]:
                       sum += l[i:i+7].count(j)
                   if sum >= 3:
                       flag = False
                       print("false4")
                       break
                   i+=1

           print(flag)
           break

        except Exception as e:
            print(e)
            break

:该程序(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、付费专栏及课程。

余额充值