OJ_1130 日志排序
来源:互联网 发布:mac ssh在哪 编辑:程序博客网 时间:2024/04/29 17:39
#include <iostream>#include <string>#include <vector>#include <sstream>#include <algorithm>using namespace std;typedef struct{ string str; string id; string day; string time; string cost;}record;vector<record> ve;bool cmp(const record a,const record b){ if(a.cost!=b.cost){ if(a.cost.size()==b.cost.size()) return a.cost<b.cost; else return a.cost.size()<b.cost.size(); } else if(a.day!=b.day) return a.day<b.day; else return a.time<b.time; } void output() { for(int i=0;i<ve.size();i++) { cout<<ve[i].str<<endl; } }void func(){ string str; // record tmp; while(getline(cin,str)) { if(str=="") { /* // 放这里会出错? 中间有空行? sort(ve.begin(),ve.end(),cmp); output(); ve.clear(); */ break; }else { record tmp; istringstream line(str); line>>tmp.id; line>>tmp.day; line>>tmp.time; line>>tmp.cost; tmp.str=str; ve.push_back(tmp); } } sort(ve.begin(),ve.end(),cmp); output(); ve.clear(); // system("pause"); }int main(int argc, char *argv[]){ //printf("Hello, world\n");func();return 0;}
注意调用顺序
- 题目描述:
有一个网络日志,记录了网络中计算任务的执行情况,每个计算任务对应一条如下形式的日志记录:
“hs_10000_p”是计算任务的名称,
“2007-01-17 19:22:53,315”是计算任务开始执行的时间“年-月-日 时:分:秒,毫秒”,
“253.035(s)”是计算任务消耗的时间(以秒计)
hs_10000_p 2007-01-17 19:22:53,315 253.035(s)
请你写一个程序,对日志中记录计算任务进行排序。
时间消耗少的计算任务排在前面,时间消耗多的计算任务排在后面。
如果两个计算任务消耗的时间相同,则将开始执行时间早的计算任务排在前面。
- 输入:
日志中每个记录是一个字符串,每个字符串占一行。最后一行为空行,表示日志结束。日志中最多可能有10000条记录。
计算任务名称的长度不超过10,开始执行时间的格式是YYYY-MM-DD HH:MM:SS,MMM,消耗时间小数点后有三位数字。
计算任务名称与任务开始时间、消耗时间之间以一个或多个空格隔开,行首和行尾可能有多余的空格。
- 输出:
排序好的日志记录。每个记录的字符串各占一行。
输入的格式与输入保持一致,输入包括几个空格,你的输出中也应该包含同样多的空格。
- 样例输入:
hs_10000_p 2007-01-17 19:22:53,315 253.035(s)hs_10001_p 2007-01-17 19:22:53,315 253.846(s)hs_10002_m 2007-01-17 19:22:53,315 129.574(s)hs_10002_p 2007-01-17 19:22:53,315 262.531(s)hs_10003_m 2007-01-17 19:22:53,318 126.622(s)hs_10003_p 2007-01-17 19:22:53,318 136.962(s)hs_10005_m 2007-01-17 19:22:53,318 130.487(s)hs_10005_p 2007-01-17 19:22:53,318 253.035(s)hs_10006_m 2007-01-17 19:22:53,318 248.548(s)hs_10006_p 2007-01-17 19:25:23,367 3146.827(s)
- 样例输出:
hs_10003_m 2007-01-17 19:22:53,318 126.622(s)hs_10002_m 2007-01-17 19:22:53,315 129.574(s)hs_10005_m 2007-01-17 19:22:53,318 130.487(s)hs_10003_p 2007-01-17 19:22:53,318 136.962(s)hs_10006_m 2007-01-17 19:22:53,318 248.548(s)hs_10000_p 2007-01-17 19:22:53,315 253.035(s)hs_10005_p 2007-01-17 19:22:53,318 253.035(s)hs_10001_p 2007-01-17 19:22:53,315 253.846(s)hs_10002_p 2007-01-17 19:22:53,315 262.531(s)hs_10006_p 2007-01-17 19:25:23,367 3146.827(s)
0 0
- OJ_1130 日志排序
- apache日志排序
- 题目1130:日志排序
- 题目1130:日志排序
- 题目1130:日志排序
- 题目1130:日志排序
- VIM日志查找结果排序
- 数据结构学习日志--排序算法
- Linux日志文件内容过滤和日志文件排序
- 九度OJ 题目1130:日志排序
- awk多行日志排序输出
- 【九度】题目1130:日志排序
- 九度OJ 题目1130:日志排序
- 读算法导论日志:插入排序
- 读算法导论日志:选择排序
- 九度OJ 题目1130:日志排序
- 九度 oj 题目1130:日志排序
- 编程测验-日志内容重排序
- Android Socket 聊天工具(一个服务端实现多个客户端间通信)
- OJ_1128
- 疯狂的互联网盛世过后,会有寒冬吗
- OJ_1129
- POJ 2259 Team Queue
- OJ_1130 日志排序
- 各种数制转换与原、反、补、移码
- c语言内存分配方式
- 这款小配件让你可以淋浴时使用手机
- 护肤品小常识科普
- 10M独享带宽,能承受多少人下载文件?
- 大文件完美上传方案(nginx upload module 集群部署方案)
- uva 10599 Robots(II)
- EASY_ZJU_PAT ADVANCED LEVEL_1031 仔细分析,删繁就简