题解 | #简单错误记录#
简单错误记录
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")

