zoukankan      html  css  js  c++  java
  • 题目1013:开门人和关门人(字符串处理)

    问题来源

      http://ac.jobdu.com/problem.php?pid=1013

    问题描述

      每个人有一个签到时间和一个签退时间,找到最早签到和最晚签退的那个人的ID。

    问题分析

      这里我本以为需要用结构体存下所有人的ID、签到时间、签退时间,然后sort排下序,找到需要的那两个人的ID。再仔细想想,不需要这么麻烦啊,为什么不输入一个,处理一个,用几个变量存下当前最早签到和最晚签退,最后输入完了,也就找到了相应的人的ID。还是挺简单的这题。

    通过这道题,我顺便研究了一下cher*和char[],研究结果:http://www.cnblogs.com/AlvinZH/p/6815414.html

    参考代码

    //
    // Created by AlvinZH on 2017/5/5.
    // Copyright (c) AlvinZH. All rights reserved.
    //
    
    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <string>
    #include <algorithm>
    using namespace std;
    
    char S[64];
    char E[64];
    int Sh,Sm,Ss;//记录最早签到时间
    int Eh,Em,Es;//记录最晚签退时间
    bool early,later;
    
    void solve(char *id,char *Stime,char *Etime)
    {
        int sh=(Stime[0]-'0')*10+(Stime[1]-'0');
        int sm=(Stime[3]-'0')*10+(Stime[4]-'0');
        int ss=(Stime[6]-'0')*10+(Stime[7]-'0');
    
        int eh=(Etime[0]-'0')*10+(Etime[1]-'0');
        int em=(Etime[3]-'0')*10+(Etime[4]-'0');
        int es=(Etime[6]-'0')*10+(Etime[7]-'0');
    
        if(sh!=Sh) early=sh<Sh;
        else if(sm!=Sm) early=sm<Sm;
        else early=ss<Ss;
    
        if(eh!=Eh) later=eh>Eh;
        else if(em!=Em) later=em>Em;
        else later=es<Es;
    
        if(early)
        {
            strcpy(S,id);
            Sh=sh;Sm=sm;Ss=ss;
        }
        if(later)
        {
            strcpy(E,id);
            Eh=eh;Em=em;Es=es;
        }
    }
    
    int main()
    {
        int n,m;
        char id[64];
        char Stime[10];
        char Etime[10];
        scanf("%d",&n);
        for(int i=0;i<n;i++)
        {
            Sh=24;Sm=60;Ss=60;
            Eh=0;Em=0;Es=0;
    
            scanf("%d",&m);
            for(int j=0;j<m;j++)
            {
                scanf("%s %s %s",id,Stime,Etime);
                solve(id,Stime,Etime);
            }
            printf("%s %s
    ",S,E);
        }
    }

    作者: AlvinZH

    出处: http://www.cnblogs.com/AlvinZH/

    本人Github:https://github.com/Pacsiy/JobDu

    本文版权归作者AlvinZH和博客园所有,欢迎转载和商用,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    enum
    高可用复用类
    int 和 Integer 的区别
    MysqlMd5加密
    软件测试例子
    Wordcount
    大气登录页面
    生成二维码的JAVA
    多态的理解
    打印低头思故乡 java
  • 原文地址:https://www.cnblogs.com/AlvinZH/p/6815439.html
Copyright © 2011-2022 走看看