题解 | #简单错误记录#
简单错误记录
https://www.nowcoder.com/practice/2baa6aba39214d6ea91a2e03dff3fbeb
#include <deque>
#include<iostream>
#include <map>
using namespace std;
int main(){
string str;
map<string, int> mymap;
deque<string> deq;
while(getline(cin, str)){
// 首先解析字符串
int pos = str.find_last_of('\\');
str = str.substr(pos+1);
pos = str.find_last_of(' ');
if(pos > 16){
str = str.substr(pos-16);
}
// 把数据存放在双端队列中
if(mymap.find(str) == mymap.end()){
deq.push_back(str);
}
// 维持双端队列中只有八条数据。
if(deq.size() > 8){
deq.pop_front();
}
mymap[str]++;
}
for(auto s : deq){
cout << s << " " << mymap[s] << endl;
}
return 0;
}

查看17道真题和解析