簡單錯誤記錄

2021-09-07 15:37:01 字數 1385 閱讀 8607

開發乙個簡單錯誤記錄功能小模組,能夠記錄出錯的**所在的檔名稱和行號。 

處理:1.記錄最多8條錯誤記錄,對相同的錯誤記錄(即檔名稱和行號完全匹配)只記錄一條,錯誤計數增加;(檔案所在的目錄不同,檔名和行號相同也要合併)

2.超過16個字元的檔名稱,只記錄檔案的最後有效16個字元;(如果檔名不同,而只是檔名的後16個字元和行號相同,也不要合併)

3.輸入的檔案可能帶路徑,記錄檔名稱不能帶路徑

一行或多行字串。每行包括帶路徑檔名稱,行號,以空格隔開。

檔案路徑為windows格式

如:e:\v1r2\product\fpgadrive.c 1325

將所有的記錄統計並將結果輸出,格式:檔名**行數數目,乙個空格隔開,如: fpgadrive.c 1325 1 

結果根據數目從多到少排序,數目相同的情況下,按照輸入第一次出現順序排序。

如果超過8條記錄,則只輸出前8條記錄.

如果檔名的長度超過16個字元,則只輸出後16個字元

示例1

e:\v1r2\product\fpgadrive.c 1325

fpgadrive.c 1325 1

牛客網題解:

1

//先將所有的字串存入雜湊表,key為字串,value為《出現順序,出現次數》,順序取相同的字串的最小值,次數一直累加2//

排序的話,利用set重寫比較器,按次數降序,次數相同則按出現順序排列3//

插入過程利用hash時間複雜度可以認為是o(n)4//

排序過程set的是紅黑樹,可以認為是o(nlgn) ,總的複雜度就是這個了

5 #include6 #include7 #include

8 #include

9using

namespace

std;

10struct info

17};

18struct fullinfo

27};

28struct classcomp

34};

35 typedef struct

info info;

36 typedef struct

fullinfo fullinfo;

37int

main()

57else

62         i++;63}

64for(it=record.begin();it!=record.end();it++)

68for(i=0,sit=ret.begin();sit!=ret.end()&&i<8;++sit,++i)

72else

7576}77

return0;

78 }

簡單錯誤記錄

使用了部落格的 設計思路。這裡主要記錄一下在處理這一題時自己理解錯的地方 1 需要從輸入的日誌資訊中提取檔名和行號。如果這樣想這個問題,那麼需要分割字串分別獲取檔名和行號。其實可以利用格式化輸入分別獲取檔名字串和行號整數值。2 輸入一條日誌,顯示一次更新的日誌資訊。理解為時迴圈輸入日誌資訊,然後將日...

簡單的錯誤記錄

開發乙個簡單錯誤記錄功能小模組,能夠記錄出錯的 所在的檔名稱和行號。處理 1.記錄最多8條錯誤記錄,對相同的錯誤記錄 即檔名稱和行號完全匹配 只記錄一條,錯誤計數增加 檔案所在的目錄不同,檔名和行號相同也要合併 2.超過16個字元的檔名稱,只記錄檔案的最後有效16個字元 如果檔名不同,而只是檔名的後...

華為 簡單錯誤記錄

開發乙個簡單錯誤記錄功能小模組,能夠記錄出錯的 所在的檔名稱和行號。處理 1.記錄最多8條錯誤記錄,對相同的錯誤記錄 即檔名稱和行號完全匹配 只記錄一條,錯誤計數增加 檔案所在的目錄不同,檔名和行號相同也要合併 2.超過16個字元的檔名稱,只記錄檔案的最後有效16個字元 如果檔名不同,而只是檔名的後...