华为2016校园招聘上机笔试题2简单错误记录
来源:互联网 发布:宽带限速软件 编辑:程序博客网 时间:2024/05/29 03:33
首先,我发现我过程中要比较文件名和行号的组合,不仅如此,还要记录这个组合出现的次数。所以果断采用结构体:
struct Error{ string filename; string line; int count;};剩下的不难,就是要求多,细节多。
首先读入一个case:while(cin >> name >> num)
去掉name里的路径,只留下完整的文件名,用到了函数name.find_last_of("\\");注意两点,一个是这个函数的使用,另一个是注意转义字符\
得到完整的文件名filename之后遍历结果集,判断是否出现过filename和num的组合,出现的话,该结构体的count加1.否则加入结果集,count为1
然后按照要求准备输出,输出之前要排序。这里用到结构体的自定义的比较函数,从大到小排序:
bool comp(const Error &a, const Error &b){ return a.count > b.count;}排序后不要忘记两个输出细节:最多输出8条记录,文件名超过16的,只输出后16个字符。
#include <iostream>#include <string>#include <vector>#include<algorithm>using namespace std;struct Error{ string filename; string num; int count;};vector<Error> v;bool comp(const Error &a, const Error &b){ return a.count > b.count;}void createError(string name, string num){ int p = name.find_last_of("\\"); string filename = name.substr(p+1); int i = 0, size = v.size(); for(i = 0; i < size; ++i){ if(v[i].filename == filename && v[i].num == num){ v[i].count++; break; } } if(i == size){ Error e; e.filename = filename; e.num = num; e.count = 1; v.push_back(e); }}int main(){ string name, num; while(cin >> name >> num){ createError(name, num); } sort(v.begin(), v.end(), comp); int size = min((int)v.size(), 8); for(int i = 0; i < size; ++i){ string nameres; if(v[i].filename.size() > 16){ nameres = v[i].filename.substr(v[i].filename.size()-16); }else{ nameres = v[i].filename; } cout << nameres << " " << v[i].num << " " << v[i].count << endl; }return 0;}
阅读全文
0 0
- 华为2016校园招聘上机笔试题----简单错误记录
- 华为2016年校园招聘上机笔试题(2)----简单错误记录
- 华为2016校园招聘上机笔试题2简单错误记录
- 华为2016校园招聘上机笔试题:简单错误记录 [python]
- 华为2016校园招聘上机笔试题2:简单错误记录(并前面错误发现修改1)
- 华为2016校园招聘上机笔试题
- 华为2016校园招聘上机笔试题
- 华为2016校园招聘上机笔试题
- 华为2016校园招聘上机笔试题
- 华为2016校园招聘上机笔试题
- 华为2016校园招聘上机笔试题2扑克牌大小
- 华为2016校园招聘:简单错误记录
- 2012华为校园招聘上机笔试题
- 华为2013校园招聘上机笔试题
- 华为2013校园招聘上机笔试题
- 华为2016校园招聘上机笔试题----最高分是多少
- 华为2016校园招聘上机笔试题----扑克牌大小
- 华为2016校园招聘上机笔试题:扑克牌大小 [python]
- 程序设计初步
- C++17 标准正式发布:开发者可更简单地编写和维护代码
- 2017年12月全球数据库排名:SQL Server 跌势明显,刚获阿里投资的MariaDB表现良好
- 编译原理:递归向下分析程序建立语法分析树的Java实现(二)
- 叉乘法求已知顶点坐标的n边形面积。
- 华为2016校园招聘上机笔试题2简单错误记录
- 未来游戏制作人:把热爱变成事业,将执着化作梦想
- 【Scikit-Learn 中文文档】大规模计算的策略: 更大量的数据
- 解决微信公众号oauth2授权redirect两次的办法
- 利用Apache Bench测试Web引擎性能
- mysql--锁
- ViewManager、ViewRootImp、WindowManagerImpl、WindowSession等详细解析
- Python之numpy基本指令
- 【Scikit-Learn 中文文档】预测延迟 / 预测吞吐量 / 技巧和窍门