简单错误记录(牛客)

本文介绍了一个简单错误记录功能的实现,该模块能够记录最近8条错误信息,包括文件名和行号,并能对重复错误进行计数。在处理过程中,文件名会被截断至最后16个字符,且不包含路径。此外,相同错误的定义基于文件名后16位和行号的匹配。代码中使用了LinkedHashMap来存储和更新错误记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

描述

开发一个简单错误记录功能小模块,能够记录出错的代码所在的文件名称和行号。

处理:

1、 记录最多8条错误记录,循环记录,最后只用输出最后出现的八条错误记录。对相同的错误记录只记录一条,但是错误计数增加。最后一个斜杠后面的带后缀名的部分(保留最后16位)和行号完全匹配的记录才做算是”相同“的错误记录。

2、 超过16个字符的文件名称,只记录文件的最后有效16个字符;

3、 输入的文件可能带路径,记录文件名称不能带路径。

4、循环记录时,只以第一次出现的顺序为准,后面重复的不会更新它的出现时间,仍以第一次为准

输入描述:

每组只包含一个测试用例。一个测试用例包含一行或多行字符串。每行包括带路径文件名称,行号,以空格隔开。

输出描述:

将所有的记录统计并将结果输出,格式:文件名 代码行数 数目,一个空格隔开,如:

示例1

输入:

D:\zwtymj\xccb\ljj\cqzlyaszjvlsjmkwoqijggmybr 645
E:\je\rzuwnjvnuz 633
C:\km\tgjwpb\gy\atl 637
F:\weioj\hadd\connsh\rwyfvzsopsuiqjnr 647
E:\ns\mfwj\wqkoki\eez 648
D:\cfmwafhhgeyawnool 649
E:\czt\opwip\osnll\c 637
G:\nt\f 633
F:\fop\ywzqaop 631
F:\yay\jc\ywzqaop 631

输出:

rzuwnjvnuz 633 1
atl 637 1
rwyfvzsopsuiqjnr 647 1
eez 648 1
fmwafhhgeyawnool 649 1
c 637 1
f 633 1
ywzqaop 631 2

import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Scanner;
 
public class Main{
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        Map<String, Integer> map=new LinkedHashMap<String, Integer>();
        while(sc.hasNext()){
            String str=sc.next();
            int linenum=sc.nextInt();
            String[] arr=str.split("\\\\");  //根据\切割
            String s=arr[arr.length-1];
            if(s.length()>16)  //截取
                s=s.substring(s.length()-16);
            String key=s+" "+linenum;
            int value=1;
            if(map.containsKey(key))
                map.put(key, map.get(key)+1);
            else {
                map.put(key, value);
            }
        }
        int count=0;
        for(String string:map.keySet()){
            count++;
            if(count>(map.keySet().size()-8)) //输出最后八个记录
                System.out.println(string+" "+map.get(string));
        }
    }
}

### 关于牛客网 Pandas 数据分析教程的学习建议 学习 Pandas 是掌握 Python 数据分析的重要一步。以下是基于已有知识和引用内容整理的一份学习指南: #### 学习目标 Pandas 的核心功能围绕数据操作展开,主要包括以下几个方面: - **数据加载与存储**:如何读取 CSV、Excel 文件以及保存结果。 - **数据清洗**:处理缺失值、重复值、异常值等问题[^1]。 - **数据转换**:通过分组聚合、重塑、拼接等方式实现复杂的数据变换。 - **数据分析**:计算统计量、绘制图表辅助决策。 #### 推荐学习路径 1. **基础知识** - 熟悉 Pandas 中的核心对象 `DataFrame` 和 `Series`。 - 学会创建简单的 DataFrame 并理解索引机制。 2. **数据导入导出** - 使用 `pd.read_csv()` 或其他方法加载外部文件。 - 尝试将处理后的数据写入新的文件格式(如 Excel 表格)。 3. **数据筛选与查询** - 利用布尔条件筛选特定行或列。 - 结合 `.loc[]`, `.iloc[]` 实现灵活定位。 4. **数据清洗** - 处理缺失值的方法包括填充 (`fillna`)、删除 (`dropna`)。 - 替换不一致的值或标准化字段名称。 5. **数据汇总与分组** - 运用 `groupby()` 方法完成多维度的统计数据。 - 计算均值、计数等常用统计指标。 6. **可视化初步** - 借助 Matplotlib 集成接口快速生成简单图形。 - 展示趋势变化或分布特征。 #### 牛客网上可能存在的资源形式 虽然具体课程列表未提供,但通常会有如下几种教学材料可供选择: - **视频讲解**:由经验丰富的讲师录制,适合初学者跟随实践。 - **在线文档**:详尽的文字说明配合实例代码便于查阅复习。 - **练习项目**:真实案例驱动的任务挑战帮助巩固所学知识点。 #### 日志分析中的应用举例 如果计划开发高效日志管理系统,则可考虑结合 Pandas 对大量文本型日志进行批量解析并提取有用信息[^4]: ```python import pandas as pd # 示例:假设有一批错误日志存放在CSV文件里 df_logs = pd.read_csv('error_logs.csv') # 查看前几条记录概览 print(df_logs.head()) # 统计每种类型的错误次数 errors_count = df_logs['ErrorType'].value_counts() print(errors_count) # 按时间戳排序找出最近发生的严重事件 recent_criticals = df_logs[df_logs['Severity'] == 'Critical'].sort_values(by='Timestamp', ascending=False).head(10) print(recent_criticals[['Message', 'Timestamp']]) ``` #### 提升技巧提示 为了成为更出色的商业分析师,在熟练掌握上述技能之后还应注重培养综合素养[^3],比如加强逻辑推理训练提升解决问题效率;同时关注行业动态引入更多元化视角支持业务洞察力发展。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值