一、注意:
-
标准格式的时间可以直接进行大小比较
//定义结构单元
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<<" ";
- 如果实在解决不了问题,选择切割,先比较时间,观察是否能够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;
}
- 单词:
- a positive integer M: 一个正整数M
- a non-negative integer N: 一个非负整数N