2007年百度招聘線上筆試真題解答$百度$
面試筆試7.38K
問題:
一、 一個文字檔案有多行,每行為一個URL。請編寫程式碼,統計出URL中的檔名及出現次數。
a) 檔名不包括域名、路徑和URL引數,例如中的檔名是rs。
b) 部分URL可能沒有檔名,例如,這類統計為“空檔名”。
c) 出現在不同URL中的相同檔名視為同一檔名,例如和為同一檔名
檔案內容示例如下:
二、 一個簡單的論壇系統,以資料庫儲存如下資料:
使用者名稱,email,主頁,電話,聯絡地址,發帖標題,發帖內容,回覆標題,回覆內容。
每天論壇訪問量300萬左右,更新帖子10萬左右。
請給出資料庫表結構設計,並結合正規化簡要說明設計思路。
三、 現有兩個檔案,
a)資料檔案A,格式為:關鍵詞、IP地址、時間,記錄條數為1000萬左右,該檔案是無序排列的。
b)資料檔案B是關鍵詞ID到關鍵詞的對應表文件,格式為:ID、關鍵詞,記錄條數在100萬左右,也是無序排列的。該對應表中的記錄是一一對應的,不存在ID或者關鍵詞重複的情況。
要求將資料檔案A對應的關鍵詞替換為B中的ID,生成新的資料檔案C,資料檔案C的格式為:關鍵詞ID、IP地址、時間。
請設計一個程式,實現上述功能,並分析時間複雜度和空間複雜度。執行程式所使用的伺服器的記憶體為1G,硬碟足夠大。(至少要給出關鍵演算法和設計思路)
專家回答:
第一題 簡評 百度的主要業務是搜尋,搜尋的基本原理如下 1.編寫爬蟲程式到網際網路上抓取網頁海量的網頁。 2.將抓取來的網頁通過抽取,以一定的格式儲存在能快速檢索的檔案系統中。 3.把使用者輸入的字串進行拆分成關鍵字去檔案系統中查詢並返回結果。 由以上3點可見,字串的分析,抽取在搜尋引擎中的地位是何等重要。 因此,百度的筆試面試題中,出現這樣的題就變得理所當然了。 以下是該題的java實現,程式碼如下:
import .*;
import .*;import .*; /** * @author tzy * 在j2sdk1.4.2下測
試通過 */public class FileNameStat{ private String srcPath;//要統計
的檔案路徑 private Map statMap;//用於統計的map public
FileNameStat(String srcPath) { ath=srcPath
; statMap=new TreeMap(); } /*獲得要統
計的URL的檔名*/ public String getFileName(String urlString)
{ URL url=null; String filePath=null;
String fileName=null; try {
url=new URL(urlString); filePath=url
ath(); int index=0; if (
(index=IndexOf("/"))!=-1) {
fileName=tring(index+1);
} else {
fileName=""; } }
catch(MalformedURLException e) { }
return fileName; } /*統計指定檔名的
個數*/ public void stat(String filename) { Integer
count=null; if((filename)!=null)
{ count=(Integer)(filename);
count=new Integer(alue()+1); }
else { count=new Integer(1);
一、 一個文字檔案有多行,每行為一個URL。請編寫程式碼,統計出URL中的檔名及出現次數。
a) 檔名不包括域名、路徑和URL引數,例如中的檔名是rs。
b) 部分URL可能沒有檔名,例如,這類統計為“空檔名”。
c) 出現在不同URL中的相同檔名視為同一檔名,例如和為同一檔名
檔案內容示例如下:
二、 一個簡單的論壇系統,以資料庫儲存如下資料:
使用者名稱,email,主頁,電話,聯絡地址,發帖標題,發帖內容,回覆標題,回覆內容。
每天論壇訪問量300萬左右,更新帖子10萬左右。
請給出資料庫表結構設計,並結合正規化簡要說明設計思路。
三、 現有兩個檔案,
a)資料檔案A,格式為:關鍵詞、IP地址、時間,記錄條數為1000萬左右,該檔案是無序排列的。
b)資料檔案B是關鍵詞ID到關鍵詞的對應表文件,格式為:ID、關鍵詞,記錄條數在100萬左右,也是無序排列的。該對應表中的記錄是一一對應的,不存在ID或者關鍵詞重複的情況。
要求將資料檔案A對應的關鍵詞替換為B中的ID,生成新的資料檔案C,資料檔案C的格式為:關鍵詞ID、IP地址、時間。
請設計一個程式,實現上述功能,並分析時間複雜度和空間複雜度。執行程式所使用的伺服器的記憶體為1G,硬碟足夠大。(至少要給出關鍵演算法和設計思路)
專家回答:
第一題 簡評 百度的主要業務是搜尋,搜尋的基本原理如下 1.編寫爬蟲程式到網際網路上抓取網頁海量的網頁。 2.將抓取來的網頁通過抽取,以一定的格式儲存在能快速檢索的檔案系統中。 3.把使用者輸入的字串進行拆分成關鍵字去檔案系統中查詢並返回結果。 由以上3點可見,字串的分析,抽取在搜尋引擎中的地位是何等重要。 因此,百度的筆試面試題中,出現這樣的題就變得理所當然了。 以下是該題的java實現,程式碼如下:
import .*;
import .*;import .*; /** * @author tzy * 在j2sdk1.4.2下測
試通過 */public class FileNameStat{ private String srcPath;//要統計
的檔案路徑 private Map statMap;//用於統計的map public
FileNameStat(String srcPath) { ath=srcPath
; statMap=new TreeMap(); } /*獲得要統
計的URL的檔名*/ public String getFileName(String urlString)
{ URL url=null; String filePath=null;
String fileName=null; try {
url=new URL(urlString); filePath=url
ath(); int index=0; if (
(index=IndexOf("/"))!=-1) {
fileName=tring(index+1);
} else {
fileName=""; } }
catch(MalformedURLException e) { }
return fileName; } /*統計指定檔名的
個數*/ public void stat(String filename) { Integer
count=null; if((filename)!=null)
{ count=(Integer)(filename);
count=new Integer(alue()+1); }
else { count=new Integer(1);
-
馬士基筆試經驗分享
好不容易鼓起勇氣擺脫頹廢的生活,投了份簡歷,又好不容易那麼好運接到了筆試通知,結果好不容易記錯了時間小獺和我一起,結果她也清楚地記得是九點半,但是好像就是我倆記錯了,服了,難道接電話的時候兩個都沒睡醒?前天接到電話的時候我真的是午覺剛醒,打電話過來的小姐問我...
-
花旗筆試筆經
花旗筆試筆經今天上午9:00,北京長安大廈筆試。一共7人,好像聽hrjj說應該一共10人,有3人沒來。7人中,2個北大,3個清華,一個從英國唸了2個碩士學位的,還有我一個,北工大的,也許他們都沒聽說過,不過沒事,反正大家的題一樣。第一部分,25分鐘30道題,全英文。是關於英國一家公司的...
-
西門子PSE實習生筆試感受
今天參加了西門子PSE實習(program&&softwareengineering)的筆試和麵試把經歷和感受寫一下筆試ms總共18頁紙,最七年級拿到嚇了我一跳,難道又是外企那種海量測試不過後來一做發現都是些基礎知識,而且雖然那麼多頁不過題目佔了一大半筆試總共時間兩小時,下面就...
-
花旗商行筆試
花旗商行筆試發信站:北大未名站(2005年12月06日18:46:48星期二),轉信看有人問,說一下吧先是numericalreasoning,和shl的題感覺不太相同,時間稍緊一些不許使用計算器,總體來說還沒什麼問題然後是groupdiscussion,一組九個人,15min看案例(5頁英文)30min英文討論,最後要有...