開發乙個簡單錯誤記錄功能小模組,能夠記錄出錯的**所在的檔名稱和行號。
處理:
1.記錄最多8條錯誤記錄,對相同的錯誤記錄(即檔名稱和行號完全匹配)只記錄一條,錯誤計數增加;(檔案所在的目錄不同,檔名和行號相同也要合併)
2.超過16個字元的檔名稱,只記錄檔案的最後有效16個字元;(如果檔名不同,而只是檔名的後16個字元和行號相同,也不要合併)
3.輸入的檔案可能帶路徑,記錄檔名稱不能帶路徑
輸入描述:
一行或多行字串。每行包括帶路徑檔名稱,行號,以空格隔開。檔案路徑為windows格式
如:e:\v1r2\product\fpgadrive.c 1325
輸出描述:
將所有的記錄統計並將結果輸出,格式:檔名**行數數目,乙個空格隔開,如: fpgadrive.c 1325 1示例1結果根據數目從多到少排序,數目相同的情況下,按照輸入第一次出現順序排序。
如果超過8條記錄,則只輸出前8條記錄.
如果檔名的長度超過16個字元,則只輸出後16個字元
e:\v1r2\product\fpgadrive.c 1325
fpgadrive.c 1325 1
開發乙個簡單錯誤記錄功能小模組,能夠記錄出錯的**所在的檔名稱和行號。
處理:
1.記錄最多8條錯誤記錄,對相同的錯誤記錄(即檔名稱和行號完全匹配)只記錄一條,錯誤計數增加;(檔案所在的目錄不同,檔名和行號相同也要合併)
2.超過16個字元的檔名稱,只記錄檔案的最後有效16個字元;(如果檔名不同,而只是檔名的後16個字元和行號相同,也不要合併)
3.輸入的檔案可能帶路徑,記錄檔名稱不能帶路徑
輸入描述:
一行或多行字串。每行包括帶路徑檔名稱,行號,以空格隔開。檔案路徑為windows格式
如:e:\v1r2\product\fpgadrive.c 1325
輸出描述:
將所有的記錄統計並將結果輸出,格式:檔名**行數數目,乙個空格隔開,如: fpgadrive.c 1325 1示例1結果根據數目從多到少排序,數目相同的情況下,按照輸入第一次出現順序排序。
如果超過8條記錄,則只輸出前8條記錄.
如果檔名的長度超過16個字元,則只輸出後16個字元
e:\v1r2\product\fpgadrive.c 1325
fpgadrive.c 1325 1
分析:這道題由於有:「數目相同的情況下,按照輸入第一次出現順序排序」
所以不能用map!!越寫越麻煩!一開始是想如果用vector,每次要從頭開始查詢計數,麻煩,但是用map會更麻煩,因為要記錄次序,所以這道題就用vector儲存pair型別,每次新來乙個新的就取查詢前面的是否已經出現這條記錄,有的話計數加一,並刪除掉新來的。最後用 stable_sort排序即可。
#include#include#include#includeusing namespace std;
typedef pairpair;
bool compare(const pair &a, const pair &b)
int main()
} } stable_sort(errrec.begin(), errrec.end(), compare);
for (int i = 0; i < errrec.size() && i < 8; i++)
}
華為機試題 簡單錯誤記錄
開發乙個簡單錯誤記錄功能小模組,能夠記錄出錯的 所在的檔名稱和行號。處理 1 記錄最多8條錯誤記錄,迴圈記錄,對相同的錯誤記錄 淨檔名稱和行號完全匹配 只記錄一條,錯誤計數增加 2 超過16個字元的檔名稱,只記錄檔案的最後有效16個字元 3 輸入的檔案可能帶路徑,記錄檔名稱不能帶路徑。輸入描述 一行...
華為機試 簡單錯誤記錄
題目描述 開發乙個簡單錯誤記錄功能小模組,能夠記錄出錯的 所在的檔名稱和行號。處理 1.記錄最多 8條錯誤記錄,對相同的錯誤記錄 即檔名稱和行號完全匹配 只記錄一條,錯誤計數增加 檔案所在的目錄不同,檔名和行號相同也要合併 2.超過16 個字元的檔名稱,只記錄檔案的最後有效 16個字元 如果檔名不同...
華為 簡單錯誤記錄
開發乙個簡單錯誤記錄功能小模組,能夠記錄出錯的 所在的檔名稱和行號。處理 1.記錄最多8條錯誤記錄,對相同的錯誤記錄 即檔名稱和行號完全匹配 只記錄一條,錯誤計數增加 檔案所在的目錄不同,檔名和行號相同也要合併 2.超過16個字元的檔名稱,只記錄檔案的最後有效16個字元 如果檔名不同,而只是檔名的後...