题解 | #简单错误记录#
简单错误记录
https://www.nowcoder.com/practice/2baa6aba39214d6ea91a2e03dff3fbeb
#include <iostream> #include <queue> #include <unordered_map> #include <vector> using namespace std; int main() { vector<string> vec; string s; while(getline(cin,s)) { int start=s.size(); while(s[start]!='\\') { start--; } start++; int end=s.size(); while(s[end]!=' ') { end--; } string name; if((end-start)>16) name=s.substr(end-16,s.size()-end+16); else name=s.substr(start,s.size()-start); vec.push_back(name); } unordered_map<string, int> map; queue<string> que; for(int i=0;i<vec.size();i++) { if(map.find(vec[i])!=map.end()) { map[vec[i]]++; } else { map.insert(pair<string, int>(vec[i],1)); que.push(vec[i]); if(que.size()>8) que.pop(); } } while(!que.empty()) { cout<<que.front()<<" "<<map[que.front()]; que.pop(); if(!que.empty()) cout<<endl; } } // 64 位输出请用 printf("%lld")