首页 > 其他分享 >(华为机试)2. 简单错误记录

(华为机试)2. 简单错误记录

时间:2023-06-05 14:35:26浏览次数:63  
标签:ves 错误 16 s1 记录 华为 机试 include string

简单错误记录
开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。
处理:
1.记录最多8条错误记录,对相同的错误记录(即文件名称和行号完全匹配)只记录一条,错误计数增加;(文件所在的目录不同,文件名和行号相同也要合并)
2.超过16个字符的文件名称,只记录文件的最后有效16个字符;(如果文件名不同,而只是文件名的后16个字符和行号相同,也不要合并)
3.输入的文件可能带路径,记录文件名称不能带路径

数据范围:输入错误记录数量满足 1≤n≤1000 ,每条记录的长度满足1≤len≤50
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 64M,其他语言128M
输入描述:
一行或多行字符串。每行包括带路径文件名称,行号,以空格隔开。

文件路径为windows格式

如:E:\V1R2\product\fpgadrive.c 1325
输出描述:
将所有的记录统计并将结果输出,格式:文件名代码行数数目,一个空格隔开,如: fpgadrive.c 1325 1

结果根据数目从多到少排序,数目相同的情况下,按照输入第一次出现顺序排序。

如果超过8条记录,则只输出前8条记录.

如果文件名的长度超过16个字符,则只输出后16个字符

示例1
输入例子:
E:\V1R2\product\fpgadrive.c 1325

#include <algorithm>
#include <iostream>
#include <optional>
#include <map>
#include <utility>
#include <vector>
#include <sstream>
using namespace std;


int main()
{
	string str;
	vector<pair<string, int>> ves;
    //输入
	while (getline(cin, str)) {
		istringstream istr(str);
		string s1, s2;
		istr >> s1 >> s2;
		auto b = s1.find_last_of('\\');
		if (b != string::npos) {
			s1 = s1.substr(b + 1);
		}
		string s = s1 + " " + s2;
		vector<pair<string, int>>::iterator re = find_if(ves.begin(), ves.end(), [s](pair<string,int> pai) {return pai.first == s; });
		if (re != ves.end()) {
			re->second += 1;
		}else {
			ves.emplace_back(make_pair(s, 1));
		}
	}
    //排序
    sort(ves.begin(),ves.end(),[](const auto&lhs,const auto& rhs){  return lhs.second > rhs.second;});
    //输出
	int len = ves.size()>8 ? 8 : ves.size();
	string temp;
	for (int i = 0; i<len; ++i) {
		temp = ves[i].first;
		int t = temp.find_first_of(' ');
		int len = temp.substr(0, t).size();
		if (len> 16) {
			temp = temp.substr(len - 16, 16) + temp.substr(t);
		}
		cout << temp << " " << ves[i].second << endl;
	}
	return 0;
}

标签:ves,错误,16,s1,记录,华为,机试,include,string
From: https://www.cnblogs.com/lihaoxiang/p/17457679.html

相关文章

  • Mysql 主从备份 Last_Errno: 1146 Last_Error: Error executing row event: 错误问题
    本人在做主从备份的时候发现了此问题! 1主数据库是已经把这个表删除了丛数据库也是没有备份这个表但是一直报这个错原因是bin-log日志有这个表 但是没记录到已经把这个表删除了 主从表同步实际从库是根据主库的bin-log二进制的SQL进行执行的 这是Mysql的一个BUG1......
  • ORA-30036: 无法按8扩展段(在还原表空间‘UNDOTBS1‘中 ,数据泵导入错误
       在ORACLE数据库进行数据泵定时任务导入是:出现错误:ORA-30036:无法按8扩展段(在还原表空间‘UNDOTBS1‘中   经过查询:UNDOTBS1表空间超过最大值,想扩大表空间   但在增大表空间的时候提示错误:ora-01537无法添加文件该文件已是数据库的一部分   只......
  • fastAdmin 修改表单验证错误提示信息位置
    原先效果: 觉得在右侧不太好看,另外假如布局设置一行两块表单,那么会影响效果。解决方案找到\public\assets\js\require-form.js大概在15行左右//绑定表单事件form.validator($.extend({validClass:'has-success',invalidClass:'has-error',bindClassTo......
  • 【2023华为云CodeArts Build 实战训练营】云端实战-玩转编译构建
    2023HDC华为开发者大会即将到来,一起跟小智提前体验华为云CodeArtsBuild请注册华为云账号并完成实名认证,实验过程中请使用Chrome浏览器完成相关操作。华为云账号注册步骤请参考:https://support.huaweicloud.com/usermanual-account/zh-cn_topic_0069252244.html实名认证操作步骤请......
  • 华为和荣耀手机
    华为手机屏幕      ......
  • git管理项目时,出现"modified content, untracked content"错误(WSG实测可以解决问题)
    新创建的一个git项目,好久没用了,重新修改一些代码之后提交时发现有如下提示: modifiedcontent,untrackedcontent(codes/)说是codes文件夹虽然修改了,但是不能被跟踪,导致一直没办法更新。修改步骤:1:ll-a:进入codes文件夹下执行,查看codes文件夹下是否存在.git文件夹,一般......
  • 使用vue出现Uncaught TypeError: Vue is not a constructor错误
    原因是vue2和vue3写法不对正确是<!DOCTYPEhtml><html>   <head>      <metacharset="utf-8">      <title></title>      <scripttype="text/javascript"src="https://unpkg.com/vue@next"></s......
  • 极客时间--golang并发实战课--Mutex的常见使用错误场景
    1.Lock/Unlock没有成对出现,就意味着会出现死锁的情况,或者是因为Unlock一个未加锁的Mutex而导致panic。2.第二种误用是Copy已使用的Mutex。Packagesync的同步原语在使用后是不能复制的。原因在于,Mutex是一个有状态的对象,它的state字段记录这个锁的状态。如果你要复......
  • Django迁移数据库编码错误
    mysql编码错误问题出现在用django的admin组件向数据库添加数据时发生的编码错误(1366,"Incorrectstringvalue:'\\xE5\\x8D\\x83\\xE7\\x89\\x9B...'forcolumn'title'atrow1")以为django可以进行数据库的迁移,但是你还是要去手动在mysql中创建一个数据库名,所以在创建的......
  • 复试机试学习
    想要见识一下,如何将数据结构中学习到的数据结构应用到实际中,转化为编程猫狗收容所两个队列分别收容猫和狗,不仅收容他们的信息还要增加进入次序的信息此时队列的元素已经不是简单的整型了#include<queue>#include<cstdio>usingnamespacestd;structAnimal{int......