题解 | #简单错误记录#

简单错误记录

https://www.nowcoder.com/practice/67df1d7889cf4c529576383c2e647c48

#include <algorithm>
#include <iostream>
#include <utility>
#include <vector>
using namespace std;
vector<pair<string, int>> ErrorN;
bool check(string s) {
    for (int i = 0; i < ErrorN.size(); i++) {
        if (ErrorN[i].first == s) {
            return false;
        }
    }
    return true;
}
bool cmp(pair<string, int> a,pair<string, int> b){
    return a.second>b.second;
}
int main() {
    string s;
    while (getline(cin, s)) {
        int idx_sp = s.rfind(' ');
        int idx_line = s.rfind('\\');
        if (idx_sp - idx_line > 17) {
            s = s.substr(idx_sp-16);
        }
        else{
            s=s.substr(idx_line+1);
        }
        if (check(s)) {
            pair<string, int> p(s, 1);
            ErrorN.push_back(p);
        } else {
            for (int i = 0; i < ErrorN.size(); i++) {
                if (ErrorN[i].first == s) {
                    ErrorN[i].second++;
                }
            }
        }
    }
    stable_sort(ErrorN.begin(),ErrorN.end(),cmp);
    for(int i=0;i<ErrorN.size()&&i<8;i++){
        cout<<ErrorN[i].first<<" "<<ErrorN[i].second<<endl;
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

喜欢走神的孤勇者练习时长两年半:爱华,信华,等华,黑华
点赞 评论 收藏
分享
听说改名字就能收到offer哈:Radis写错了兄弟
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务