1006 Sign In and Sign Out (25分)

一、注意:
  1. 标准格式的时间可以直接进行大小比较


    image.png
//定义结构单元
struct Unit{
    string ID;
    string inTime;
    string outTime;
};
//根据进入时间进行排序
bool cmp1(Unit a,Unit b)
{
    string ain = a.inTime;
    string bin = b.inTime;
    return ain < bin; //小,返回的是true,从小到大排列
}

sort(n,n+M,cmp1); //根据进入时间进行排序
cout <<n[0].ID<<" ";
  1. 如果实在解决不了问题,选择切割,先比较时间,观察是否能够AC,如果不可以,则进一步切割比较
  • int number = stoi(string); //字符串数字变为int型整数
  • string s = to_string(number); //数字(int float double)变为字符串
 int min_h = 25;  //最早时间
    int max_h = 0;  //最晚时间
    for(int i=0;i<M;i++)
    {
        int time1 = stoi(n[i].inTime.substr(0,2)); //小时
        int time11 = stoi(n[i].outTime.substr(0,2));
        if(time11 > max_h)
            max_h =time11;
        if(time1 < min_h)
            min_h = time1;
    }
    for(int i=0;i<M;i++)
    {
        int time2 = stoi(n[i].inTime.substr(0,2)); //小时
        int time22 = stoi(n[i].outTime.substr(0,2));
        if(time2 == min_h)
            cout <<n[i].ID<<" ";
        if(time22 == max_h)
            cout <<n[i].ID;
    }
  1. 单词:
  • a positive integer M: 一个正整数M
  • a non-negative integer N: 一个非负整数N
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容