當前位置:學問君>學習教育>考研>

2015大衆點評網校園招聘筆試題目

學問君 人氣:7.1K

1、有10個檔案,每個檔案1G,每個檔案的每一行存放的都是用戶的query,每個檔案的query都可能重複。要求你按照query的頻度排序。

2015大衆點評網校園招聘筆試題目

hash映射:

1、順序讀取10個檔案,按照hash(query)%10的結果將query寫入到另外10個檔案(記爲a0,a1,..a9)中。這樣新生成的檔案每個的大小大約也1G(假設hash函數是隨機的`)。

2、hash_map統計:找一臺內存在2G左右的機器,依次對(a0,a1,..a9)用hash_map(query, query_count)來統計每個query出現的次數。每個query出現一次,則count+1。

3、堆/快速/歸併排序:利用快速/堆/歸併排序按照出現次數進行排序,將排序好的query和對應的query_cout輸出到檔案中,這樣得到了10個排好序的檔案(記爲b0,b1,..b9)。最後,對這10個檔案進行歸併排序(內排序與外排序相結合)。

2、點評在和第三方網站合作的過程中,需要在由點評頁面跳轉到對方頁面的連結中加入資訊來記錄點評自己的一些資訊,例如用戶資訊(包括id和識別串)、平臺(PC、WAP、APP等)、訪問時間等,但是對方只能保留一個由大寫字母和數字組成的字元串(長度小於等於128個字元,越短越好)來標識這樣一次訪問,之後會將該字元串回傳給點評。請爲這個需求設計一對加密解密函數,函數原型如下:

struct DianPingInfo {

uint_32 userId, string userString, //長度爲32,由大小寫字母和數字組成

Date viewTime, //精確到秒

uint_8 platform

};

string encode(uinit_32 userId, string userString, Date viewTime, short platform);

DianPingInfo decode(string);

可供編碼的字元需要大寫字母和數字總共有26+10=36個,那麼只能編碼5個bit,需要將編碼前的5個字節編碼爲8個字節。其實考慮到算法的簡單,可以只編碼4個bit,那就是每個字節用兩個字節編碼,這樣只需要使用大寫字母而不用數字。比如 一個字節是'a' ASCII碼爲0x61,二進制爲01100001,拆分爲兩個4bit爲0110和0001,然後都加上'A',就編碼成爲了G和B。這一方式的缺點在於浪費一半空間

3、場景:

考察目的:linux檔案系統

管理員有一臺普通的pc 機器,已安裝linux操作系統(如:centos 6.5)。管理員告訴你,在 /data 目錄下 只有1個100MB 大小的檔案。他要求你找到這個檔案並將它拷貝到 /home 目錄下。

問題:

1,由於不知道檔案名,只知道檔案大小。你能透過使用哪些 linux工具去找到這個檔案?

2,找到該檔案後,使用什麼linux 命令去完成檔案拷貝?

3,進行拷貝操作時,系統提示:沒有權限。你需要檢查哪些地方?

4,進行拷貝時,系統提示:磁盤滿,無法寫入。你需要使用什麼linux命令,檢查哪些地方?

5,你估計完成這個檔案拷貝需要多長時間?寫出你認爲對拷貝時間影響比較大的因素,越多越好。

1、ls -lhs 會顯示 檔案大小、讀寫執行權限、用戶組歸屬及檔案名等資訊

或者直接使用find命令 find /data -size 100M

2、cp /data/test /home

3、需要檢視該檔案的用戶組權限,使用 ll 命令檢視該檔案所有者資訊,添加該用戶爲該檔案的歸屬組

使用chown和chgrp 可以修改檔案用戶組權限

4、df -h /home

檢視目的地址可以空間情況,如果可用空間不足則需要將檔案拷貝到其他地方,或者將其他可以空間新掛載/home下

5、cp傳輸速度大約是8M/s,傳輸時間大約爲10s +

影響因素:

1)快取。測試以前要先把分區卸載掉,然後加載。這樣纔沒有快取了。包括目錄。

如果有快取檔案和目錄,速度差別特別大。

2)還要看檔案在磁盤的位置。磁盤還有一個尋道時間平均9m/s.

3)如果是網絡傳輸,還需要考慮網絡延時、網絡帶寬等問題。

4)另外如果有加密的話,加密算法不同會明顯影響傳輸時間,越弱的加密算法傳輸速度越快

5)壓縮問題,壓縮會降低傳輸速度