题解 | #简单错误记录#
简单错误记录
https://www.nowcoder.com/practice/2baa6aba39214d6ea91a2e03dff3fbeb
#include <iostream> #include <map> #include <cstring> #include <vector> #include <cmath> using namespace std; static int cnt=0; int deal_name(string str,string num,vector<vector<string>> &q,vector<string> &l) { int n; for(int i=0;i<q.size();i++){ if(str == q[i][0] && num == q[i][1]){ n=atoi(q[i][2].c_str()); n=n+1; q[i][2] = to_string(n); //cout << q[i][0] << q[i][1] << q[i][2] << "@@@" << endl; //cout << q[i][0] << str << "@@@" << endl; return 0; } } l.push_back(str); l.push_back(num); l.push_back(to_string(1)); q.push_back(l); l.clear(); //cout << str << "@@@" << endl; return 0; } int action(string str,string &name,string &num) { int i; string s; //cout << str << endl; for(i=0;i<str.size();i++){ s = s+str[i]; //cout << s << endl; if(str[i] == '\\'){ //cout << "------" << endl; s =""; } if(str[i] == ' '){ name = s; //cout << name << endl; s =""; } if(i == str.size()-1){ num =s; //cout << s << endl; } } //cout << name << " &&&&& " << num << endl; return 0; } int cut_name(string &name) { if(name.size() > 16){ name = name.substr(name.size()-17,name.size()); } //cout << name << name.size() << endl; return 0; } int deal_string(string str,vector<vector<string>> &q,vector<string> &l) { int a;int b; string name; string num; int n; action(str,name,num); cut_name(name); deal_name(name,num,q,l); return 0; } int main() { string str; vector<string> k; vector<string> l; vector<string> t; vector<vector<string>> q; while(getline(cin,str)){ k.push_back(str); } for(auto e : k){ deal_string(e,q,l); } int ct; if(q.size() > 8){ ct =8; }else{ ct=q.size(); } for(int i=q.size()-ct;i<q.size();i++){ cout << q[i][0] << "" << q[i][1] << " " << q[i][2] << endl; } } // 64 位输出请用 printf("%lld")