题解 | #简单错误记录#

#include <bits/stdc++.h>

using namespace std;
//只用输出最后出现的八条错误记录——考虑队列,超过八条时弹出 (双端队列,从后端进,从前端出)
//对相同的错误记录只记录一条,但是错误计数增加——考虑哈希表,键为错误记录,值为错误计数


int main(){
    string str = "";
    unordered_map<string, int> mp;
    deque<string> dq;
    
    while(getline(cin, str)){
        str = str.substr(str.find_last_of('\\') + 1); 
        //cout << str << endl; //cqzlyaszjvlsjmkwoqijggmybr 645
        int spacePos = str.find_last_of(' '); //从0开始的第26个索引处是空格
        //cout << spacePos << endl; //26
        if(spacePos > 16){
            str = str.substr(spacePos - 16);
            //cout << str << endl; //lsjmkwoqijggmybr 645
        }
        
        if(mp.find(str) == mp.end()){
            dq.push_back(str);
        }
        mp[str]++;
        
        //cout << dq.front() << endl; //lsjmkwoqijggmybr 645
        if(dq.size() > 8) dq.pop_front(); //超过八条则 从前面推出
    }
    
    for(auto s : dq){
        cout << s << " " << mp[s] << endl;
    }
    
    return 0;
}
全部评论

相关推荐

真起不了响亮的名字:九月份人家投秋招你投实习嘛,会不会有点晚了,算你九月份直接上岗,实习三个月后一月初去和别人抢秋招补录还是备战春招啊更别说休息一个月后还要重新复习八股和算法
点赞 评论 收藏
分享
Yki_:你要算时间成本呀,研究生两三年,博士三四年,加起来就五六年了,如果你本科去腾讯干五年,多领五年的年薪,加上公司内涨薪,可能到时候十五年总薪资也跟博士差不多
点赞 评论 收藏
分享
07-10 14:08
已编辑
江西农业大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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