题解 | #日志排序#

日志排序

https://www.nowcoder.com/practice/0f64518fea254c0187ccf0ea05019672

#include<iostream>
#include<sstream>
#include<algorithm>
#include<cstdio>
#include<string>
using namespace std;

const int N = 1e5 + 10;

struct Log{
	string line;    //原来的输入行 
	string name; //任务名称
	string year;  //开始时间
	string date;
	float time;   //耗时 
}logs[N];

bool cmp(Log l1,Log l2)
{
	if(l1.time == l2.time)
	{
		if(l1.year == l2.year) return l1.date < l2.date;
		return l1.year < l2.year;
	}
	return l1.time < l2.time;
}

int main(void)
{
	int i = 0;
	while(getline(cin,logs[i].line))
	{
		istringstream iss(logs[i].line);
		iss >> logs[i].name >> logs[i].year >> logs[i].date >> logs[i].time;
		i++;
	}
	sort(logs,logs + i,cmp);
	for(int j = 0;j < i;j++)
	{
		printf("%s\n",logs[j].line.c_str());
//		cout << logs[j].line << endl;
	}
	
	return 0;
}

全部评论

相关推荐

hso_:哈哈哈哈哈哈我没offer一样在同一道题开喷了
投递深圳同为数码等公司10个岗位
点赞 评论 收藏
分享
10-09 22:05
666 C++
找到工作就狠狠玩CSGO:报联合国演讲,报电子烟设计与制造
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务