文章

3

粉丝

51

获赞

3

访问

1.8k

头像
完成率100%,字符串处理 + 排序(注意毫秒数和运行时间并不是字节序越小一定时间越早/短)
P1227 北京大学机考题
发布于2024年6月14日 23:02
阅读数 643

据我观察,这里有很多题解的完成率其实只有75%,这是为什么呢?因为他们都是将整个开始时间读作一个字符串,运行时间读作一个字符串,然后进行比较

这里有一个很坑的点,毫秒数和运行时间并不是字节序越小一定时间越早/短, 虽然前面的年月日时分秒由于格式固定这么说是没有错的;

但是对于毫秒数和运行时间,由于位数并不确定,像是字节序"40" > "355", 但是实际数值上上 40 < 355,这就会导致结果的错误

我这里采用了类 + sort排序, 进行了一个三层排序; 这里类中存一个整字符串,是因为拆了又合并,有两个东西位数不确定,不好确定如何拼接,干脆多存一个,直接输出了

这里字符串处理核心采用了 istringstream流,对于避开空格符和知道终止符的情况,是非常的好用,大家也可以了解一下

#include <bits/stdc++.h>

using namespace std;

class Log {
public:
    string content;
    string name;
    string startDate;
    double ms;
    double runtime;

    Log(string content, string name, string date,  double ms, double runtime) 
        : content(content), name(name), startDate(date), ms(ms), runtime(runtime) {}

    // 比较函数
    bool operator<(const Log& other) const {
        if (runtime != other.runtime) {
            return runtime < other.runtime;
        } else if (startDate != other.startDate) {
            return startDate < other.star...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发