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

日志排序

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;
    }
}

#算法#
全部评论

相关推荐

点赞 评论 收藏
分享
诨号无敌鸭:恭喜佬,但是有一个小问题:谁问你了?我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了
点赞 评论 收藏
分享
一名愚蠢的人类:多少games小鬼留下了羡慕的泪水
投递荣耀等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务