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