题解 | #简单错误记录#

简单错误记录

https://www.nowcoder.com/practice/2baa6aba39214d6ea91a2e03dff3fbeb

#include <iostream>
#include <string.h>
using namespace std;


struct log_ {
    string s;
    int code;
    int num;
    log_* next;
};
struct log_head {
    log_* next;
    int len;
};

string findfile(string s) {
    string s1 = "";
    for (int i = s.length() - 1; i >= 0 && s.length() - i <= 16; i--) {
        if (s[i] == '\\') {
            break;
        }
        s1 = s[i] + s1;
    }
    return s1;
}



int main() {
    log_head* head = new log_head;
    head->len = 0;
    head->next = NULL;
    string a;
    int b;
    log_* last = head->next;
    while (cin >> a >> b) {
        log_* node = new log_;
        string ss = findfile(a);
        node->s = ss;
        node->code = b;
        node->next = NULL;
        node->num = 1;

        int flag = 0;
        for (log_* p = head->next; p != NULL; p = p->next) {
            if (node->s == p->s && node->code == p->code) {
                p->num++;
                flag = 1;
                break;
            }
        }

        if (flag == 0) {
            if (last != NULL) {
                node->next = last->next;
                last->next = node;
                last = node;
                head->len++;
            } else {
                node->next = NULL;
                head->next = node;
                last = node;
                head->len++;
            }
        }
    }
    log_* first = head->next;
    if (head->len > 8) {
        for (int i = 0; i < (head->len - 8); i++) {
            first = first->next;
        }
    }
    while (first) {
        cout << first->s << " " << first->code << " " << first->num << endl;
        first = first -> next;
    }

}

全部评论

相关推荐

存一千万就可以进大厂实习
石圪节公社发型师:有存一千万的实力还实习个嘚,直接躺平
点赞 评论 收藏
分享
你背过凌晨4点的八股文么:简历挂了的话会是流程终止,像我一样
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务