2018大疆校招软件岗位笔试题目(求有效工作时间)——未在线验证

题目

在DJI的工时打卡计算系统中,一个工作日的定义是由工作当日当天的凌晨03:00:00开始,到隔天凌晨03:00:00(不包含)为止。
这其中,工作日当天的中午12:30:00到下午14:00:00(不包含)为午休时间,不计入工作时间。
Tom由于工作繁忙,担心自己有时候会忘记打卡,因此他每次经过打卡机到时候都会不由自主地打一次卡。为了更好的了解自己的工作情况,Tom找到了自己整个八月份的乱序打卡记录,但是这些数据不小心弄乱了,所以Tom想请你帮个忙。从给出的N条记录中,找出所有有效的打卡工作日(即在该工作日中打开次数>=2并且有效工作时间>0),并计算该工作日中的有效工作时间(按秒计算,除去打开时间内出现的午休时间)。其中工作日定义为当天3:00:00到次日2:59:59为当天工作日,即当天 2:59:59(包括)以前的打开记录当作前一天打开记录和有效工作时间,不计做当天的打开记录和有效工作时间。

输入

12
08.10 01:00:00
08.09 23:59:59
08.10 17:00:00
08.10 18:00:00
08.01 01:00:00
08.01 04:00:00
08.03 10:00:00
08.03 12:29:59
08.04 10:00:00
08.04 12:30:00
08.07 01:00:00
08.07 02:00:00

输出

08.03 8999
08.04 9000
08.06 3600
08.09 3601
08.10 3600


#define REST_START 45000 //60*60*12+30*60

  • #define REST_END 50400 //60*60*14
  • #define START 10800 //60*60*3
  • #define END 86400 //60*60*24
  • #define REST 5400 //REST_END-REST_START
  • void main()
  • {
  • int N;//数据量
  • vectorint> dayRecord[32];// 8月31天,vector从1~31对应日期
  • int workTime[32];// 记录每天的工作时间
  • cin >> N;
  • if (getchar() == ‘n’)
  • {
  • ;
  • }
  • for (int i = 0; i
  • {
  • string str;
  • int day = 0, hour, minute, second, time;
  • getline(cin, str);
  • sscanf_s(str.c_str(), “08.%d %d:%d:%d”, &day, &hour, &minute, &second);
  • time = hour * 60 * 60 + minute * 60 + second;
  • if (time > REST_START&&time //如果是12:30:00~14:00:00
  • continue;
  • else if (time //如果处在00:00~02:59:59
  • {
  • dayRecord[day – 1].push_back(time + END – REST);
  • }
  • else if (time >= REST_END) //如果在14:00:00之后
  • dayRecord[day].push_back(time – REST);
  • else
  • dayRecord[day].push_back(time);
  • }
  • for (int i = 1; i 31; i++)//计算每天工作时间
  • {
  • int min = END + START,
  • max = 0,
  • size = dayRecord[i].size();
  • if (size 2) //如果打卡次数小于2
  • {
  • continue;
  • }
  • for (int j = 0; j
  • {
  • if (dayRecord[i][j]
  • min = dayRecord[i][j];
  • if (dayRecord[i][j]>max)
  • max = dayRecord[i][j];
  • }
  • workTime[i] = max – min;
  • if (i 10)
  • printf(“08:0%d %dn”, i, workTime[i]);
  • else
  • printf(“08:%d %dn”, i, workTime[i]);
  • }
  • system(“pause”);
  • }
  • 2018大疆校招软件岗位笔试题目(求有效工作时间)——未在线验证

    来源:Mr_wwb123

    声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

    上一篇 2017年7月28日
    下一篇 2017年7月28日

    相关推荐