题解 | #简单错误记录#

简单错误记录

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

  1. map 和 vector一般都是配合一起使用的。
  2. 注意循环输入的语法,一般就是取余。
  3. 最后输出的时候要考虑不够8个的情况
#include<bits/stdc++.h>

using namespace std;

string get_file_name(string filepath){
    int end_pos = filepath.size()-1;
    //倒着走,直到到第一个斜杠停下
    for(;end_pos>=0;end_pos--){
        if(filepath[end_pos] == '\\'){// 反斜杠需要进行转义
            break;
        }
    }

    string file  = filepath.substr(end_pos+1, filepath.size()- end_pos -1); //获取filename
    if(file.size()> 16) file = file.substr(file.size()-16,16);
    return file;// 最终返回这个文件名

}


int main(){
    string filepath, length;

    map<string, int> m;
    //准备开始循环记录
    int start_index = 0;
    vector<string> record(8,""); // 只需要循环记录八条即可。

    while(cin>>filepath>>length){
        string file = get_file_name(filepath);
        //改变成想要存储的字符串
        string key = file+" "+length;
        if(m.find(key)==m.end()){// 找不到应该是等于
            m[key] = 1;
            record[start_index] = key;//绝对不要push_back
            start_index = (start_index+1)%8; // index
        }else{
            m[key]+=1;//增加一次,但又不占据条数
        }
    }

    for(int i = 0; i < 8; i++){
        if(record[start_index] != "") // 如果当前数目不够8个。
            cout<<record[start_index]<<" "<<m[record[start_index]]<< endl;

        start_index = (start_index + 1) % 8;
    }

    return 0;

}
算法解析 文章被收录于专栏

这里主要是算法岗的自我思路总结

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-04 18:25
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-02 17:28
25届每天都在焦虑找工作的事情0offer情绪一直很低落硬撑着面了一个岗位岗位有应酬的成分面试的时候hr给我出各种场景题问的问题比较犀利&nbsp;有点压力面的感觉感觉有点回答不上来本来就压抑的情绪瞬间爆发了呢一瞬间特别想哭觉得自己特别没用没绷住掉眼泪了事后想想觉得自己挺有病的&nbsp;真的破大防了
喜欢唱跳rap小刺猬...:我觉得没关系吧,之前有一次面试leader给我压力面,我顶住了压力,结果入职的时候发现组里氛围很差,果断跑路。其实从面试就能大概看出组的情况,面试体验好的组倒是不一定好,但是面试体验不好的组。。。就很难说
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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