题解 | #简单错误记录#

简单错误记录

https://www.nowcoder.com/practice/2baa6aba39214d6ea91a2e03dff3fbeb

  • 解题思路

第一:按照题目的输入,应当输入两个字符串 str + num,都是string

第二: 先找出每个字符串最后的一个反斜杠字符的位置pos

第三: 取pos后的字符串为错误信息,同时判断是否长度大于16

第四: 错误信息的字符串找到后,按照题目格式开始拼接

第五: 利用vector保存每一个错误信息,保证顺序,注意打印的是后8个错误信息

第六: 利用map保存每一个错误信息的次数

  • 代码
#include <iostream>
#include <string>
#include <vector>
#include <map>
using namespace std;

int main() 
{
    string str, num;
    map<string,int> mp;
    vector<string> v;
    while(cin >> str >> num)
    {
        int pos = str.rfind('\\');
        if(pos != -1)
        {
            str = str.substr(pos+1);
        }
        if(str.size() > 16)
        {
            //取最后16位
            str = str.substr(str.size() - 16);
        }
        //错误信息找到,开始拼接
        str += " ";
        str += num;
        if(mp[str] == 0)
        {
            v.push_back(str);
        }
        mp[str]++;
    }
    //统计结束,开始打印
    int i = 0;
    if(v.size() > 8)
    {
        i = v.size() - 8;
    }
    for(; i < v.size(); i++)
    {
        cout << v[i] << " " << mp[v[i]] << endl;
    }
    return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

人力小鱼姐:实习经历没有什么含金量,咖啡店员迎宾这种就别写了,其他两段包装一下 想找人力相关的话,总结一下个人优势,结合校园经历里有相关性的部分,加一段自我评价
点赞 评论 收藏
分享
但听说转正率很低,我现在有在实习了,好纠结要不要去
熬夜脱发码农:转正率低归低,但是实习的经历你可以拿着,又不是说秋招不准备了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务