可可簡歷網

位置:首頁 > 面試 > 面試筆試

2007年百度招聘線上筆試真題解答$百度$

2007年百度招聘線上筆試真題解答$百度$
問題:

  一、 一個文字檔案有多行,每行為一個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);