题解 | #简单错误记录#

简单错误记录

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

参考大神的结合自己的,刚开始最大的坑就是unordered_map的输出顺序是不一定的,和插入顺序无关,且没有rbegin(),rend()迭代器*,靠,被这个坑了半天,大神的做法就是循环取余操作,这个不得不说秒啊想起了循环队列,我靠这可比我再用一个map<int,string>记录排序先后巧妙多了,而且空间复杂度一直是n+8

#include <bits/stdc++.h>
using namespace std;
int main(int argc,char *argv[])
{
    string str;
    unordered_map<string,int> unmap;
    vector<string> record(8,"");
    int start_index=0;
    string row="";
    while(cin>>str>>row)
    {
        int len=str.size();
        int j=len-1;
        for(;j>=0;j--)
        {
            if(str[j]=='\\'||len-j==17)break;
        }
        string error=str.substr(j+1,len-j-1)+" "+row;
        
        if(unmap[error]==0)
        {
            record[start_index]=error;
            start_index=(start_index+1)%8;
        }
        unmap[error]++;  
    }
    for(int i=0;i<8;i++)
    {
        if(record[start_index] != ""){
            cout << record[start_index] << " " << unmap[record[start_index]] <<endl;
        }
        start_index = (start_index + 1) % 8;
    } 
}
全部评论

相关推荐

02-22 18:38
门头沟学院 Java
程序员牛肉:标准的NPC简历,一个短链接+12306。你可以在牛客上面搜一搜有多少人的简历和你一样。你自己能不能给出你一个理由让面试官在大家简历高度相同的情况下,选择约面你而不是对应的211,985学生? 是因为你即将拥有的那段小厂实习吗?这种小厂实习真的很有含金量吗?因此你可以找实习,但是你如果只能找到小厂实习的话,其实意义不太大。 但你的时间是充足的,相信我:从现在到今年的九月份大三上你就干两个事情:"写博客"+“参加开源之夏”。这两个搞好了不亚于一段大厂实习的含金量。 想要让自己变得更强,首先就是不要把自己当打工人看待,让自己简历上面的活人气息更多一点,不要让自己成为流水线的产物。你不是在出售你的技能,你是在利用你的技能和公司达成一种合作关系。
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务