题解 | #日志排序# 带注释版

日志排序

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

#include <bits/stdc++.h>
using namespace std;

// 定义一个结构体用来存储记录信息
struct record {
    string name;       // 记录中的人名
    string startDay;   // 开始日期
    string startTime;  // 开始时间
    double costTime;   // 持续时间,以某种单位(可能是小时)表示
    string line;       // 原始输入字符串
};

// 比较函数,用于确定两个记录的排序规则
bool cmp(record r1, record r2) {
    // 首先比较持续时间
    if (r1.costTime != r2.costTime) return r1.costTime < r2.costTime;
    else {
        // 如果持续时间相同,则比较开始日期
        if (r1.startDay != r2.startDay) return r1.startDay < r2.startDay;
        // 如果开始日期也相同,则比较开始时间
        else return r1.startTime < r2.startTime;
    }
}

int main() {
    record r[10000]; // 声明一个记录数组,用来存储最多10000条记录
    int i = 0;
    string s;
    // 循环读取输入直到EOF
    while (getline(cin, s)) {
        r[i].line = s; // 将整行文本存储在line字段中
        istringstream lineStream(s); // 使用istringstream从字符串中提取数据
        // 将提取的数据存储到相应的字段
        lineStream >> r[i].name >> r[i].startDay >> r[i].startTime >> r[i].costTime;
        i++;
    }

    // 对记录数组进行排序,根据定义的比较函数
    sort(r, r + i, cmp);

    // 输出排序后的每条记录的原始行
    for (int j = 0; j < i; j++) {
        cout << r[j].line << endl;
    }
}

#算法#
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 13:05
TMD找工作本来就烦,这东西什么素质啊😡
Beeee0927:hr是超雄了,不过也是有道理的
点赞 评论 收藏
分享
06-17 00:26
门头沟学院 Java
程序员小白条:建议换下项目,智能 AI 旅游推荐平台:https://github.com/luoye6/vue3_tourism_frontend 智能 AI 校园二手交易平台:https://github.com/luoye6/vue3_trade_frontend GPT 智能图书馆:https://github.com/luoye6/Vue_BookManageSystem 选项目要选自己能掌握的,然后最好能自己拓展的,分布式这种尽量别去写,不然你只能背八股文了,另外实习的话要多投,尤其是学历不利的情况下,多找几段实习,最好公司title大一点的
无实习如何秋招上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务