版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
.百度筆試題及答案-百度筆試題及答案百度java筆試題(含答案)更多面試題,百度面試筆試題解答答案專家回答:第一題簡評百度的主要業(yè)務(wù)是搜索,搜索的基本原理如下1.編寫爬蟲程序到互聯(lián)網(wǎng)上抓取網(wǎng).頁海量的網(wǎng)頁。2.將抓取來的網(wǎng)頁通過抽取,以一定的格式保存在能快速檢索的文件系統(tǒng)中。感謝閱讀3.把用戶輸入的字符串進行拆分成關(guān)鍵字去文件系統(tǒng)中查詢并返回結(jié)果。謝謝閱讀由以上3點可見,字符串的分析,抽取在搜索引擎中的地位是何等重要。感謝閱讀因此,百度的筆試面試題中,出現(xiàn)這樣的題就變得理所當然了。感謝閱讀以下是該題的java實現(xiàn),代碼如下:程序代碼程序代碼import*;import*;.import*;/***@authortzy*在下測試通過*/感謝閱讀publicclassFileNameStat{privateStringsrcPath;//要統(tǒng)計的謝謝閱讀文件路徑privateMapstatMap;//用于統(tǒng)計的map精品文檔放心下載publicFileNameStat(StringsrcPath)感謝閱讀{=srcPath;軟件開發(fā)網(wǎng)statMap=newTreeMap();}謝謝閱讀./*獲得要統(tǒng)計的URL的文件名*/public StringgetFileName(StringurlString)精品文檔放心下載{URLurl=null;StringfilePath=null;StringfileName=null;try{url=newURL(urlString);filePath=();intindex=0;if((index=(“/”))!=-1){.fileName=(index+1);else{fileName=““;}}catch(MalformedURLException精品文檔放心下載e){}returnfileName;}/*統(tǒng)計指定文件名的個數(shù)*/publicvoidstat(Stringfilename)謝謝閱讀.{Integercount=null;if((filename)!=null){count=(Integer)(filename);感謝閱讀count=newInteger(()+1);}else{count=newInteger(1);}(filename,count);}/*統(tǒng)計的主方法*/.public void start() throws感謝閱讀FileNotFoundException,IOException感謝閱讀{BufferedReaderbfin=newBufferedReader(newFileReader());精品文檔放心下載Stringtemp=null;while((temp=())!=null){謝謝閱讀stat(getFileName(temp));}}/*輸出統(tǒng)計結(jié)果*/publicvoidresult(){.Iteratorit=().iterator();謝謝閱讀while(()){entry=()(());((().equals(““)?”空文件名”:())+精品文檔放心下載“的個數(shù)是”+()); }}publicstaticvoidmain(Stringargs)throwsException精品文檔放心下載{FileNameStatfns=newFileNameStat(““);//指定成待統(tǒng)計文件感謝閱讀();();.}}第二題簡評:這道題也與百度的業(yè)務(wù)有關(guān),百度現(xiàn)在除了搜索外,還有貼吧,知道,博客等重要產(chǎn)品。同時也在積極的探索社區(qū)化,包括前不久宣布進軍電子商務(wù)領(lǐng)域,搜索之外的這些產(chǎn)品,其主要功能的實現(xiàn)主要是對數(shù)據(jù)庫的操作。因此,想進入百度,也需要對數(shù)據(jù)庫有一定的認識。實現(xiàn)思路及數(shù)據(jù)庫設(shè)計:1,該論壇主要有兩個實體對象,用戶和帖子;對于帖子對象,有一個問題:回復感謝閱讀.的帖子是否應(yīng)該跟主題帖子存放在同一個表里?考慮到每天更新10萬帖子,說明帖子數(shù)比較多,為了方便主題的呈現(xiàn),我一般都把主題貼和回帖分別放在不同的表中,把主題貼和回帖分開可以提高查詢效率(300萬的訪問量每天)。精品文檔放心下載2,按照1中的思路,該論壇由兩個對象(用戶和帖子)變成三個實體對象,分別是用戶,主題帖子,回復帖子;感謝閱讀3,上述三個對象存在三個關(guān)系,分別是:用戶--主題帖,一個用戶可以發(fā)0個或多個帖子,一個帖子對應(yīng)一個用戶精品文檔放心下載.(一對多關(guān)系),主題帖--回復帖:一個主題有0個或多個回復帖子,一個回復帖子對應(yīng)一個主題(一對多關(guān)系);精品文檔放心下載用戶--回復貼:一個用戶可以回0個或多個帖,一個帖子對應(yīng)一個用戶(一對多關(guān)系)。感謝閱讀還存在對回復貼的回復,這個考慮fatherId來表示。4,由于三個關(guān)系“用戶--主題帖,主題帖--回復帖,用戶--回復貼”都是一對多關(guān)系,根據(jù)表設(shè)計一般原則,可以將這兩個關(guān)系獨立建立表,也可以不另外建表而將一對多的關(guān)系體現(xiàn)在實體感謝閱讀.表中;然而,表間的連接查詢是非常耗資源的,所以應(yīng)盡量減少表間連接,那么對三個關(guān)系不應(yīng)該分別建表,而是把用戶的id作為主題表和回帖表的外鍵,把主題貼id作為回帖表的外鍵。感謝閱讀5,鑒于以上考慮,該論壇的三個表如下所示表名:t_user_info(用戶信息表)字段名類型缺省值中文含謝謝閱讀義 約束 備注id Int 用戶編號Auto_incrementName Varchar(30)Email Varchar(50)
PRI用戶名.Phone Varchar(30)Addr Varchar(200)其他字段略,根據(jù)需要添加 表名:main_content_info(主題帖信息表)精品文檔放心下載字段名類型缺省值中文含義約束備注id Int 貼編號 PRIAuto_incrementTitle Varchar(200) 發(fā)帖標題Content Text 發(fā)帖內(nèi)容UserID Int 用戶編號外鍵其他字段略,根據(jù)需要添加表名:sub_content_info(回復貼信.息表)字段名類型 缺省值 中文含義約束 備注id Int 貼編號 PRIAuto_incrementTitleVarchar(200)發(fā)帖標題ContentText發(fā)帖內(nèi)容精品文檔放心下載UserID Int 用戶編號 外鍵FatherIDMainID
IntInt
父編號主題帖編號外鍵其他字段略,根據(jù)需要添加6,符合范式分析:.上述表中每個字段不可再分,首先滿足1NF;然后數(shù)據(jù)庫表中的每個實例或行都是可以被惟一地區(qū)分(id),不存在部分依賴,因此滿足2NF;感謝閱讀t_user_info(用戶信息表)和main_content_info(主題帖信息表)不存在任何傳遞依賴,至少屬于BCNF;精品文檔放心下載但是sub_content_info(回復貼信息表)不滿足3NF,因為存在如下傳遞依感謝閱讀賴 :id-->FatherID,FatherID-->MainID。感謝閱讀范式并不是越高越好,sub_content_info表只滿足2NF卻更謝謝閱讀.有效率,也是當今論壇較主流的設(shè)計。第三題簡評:如何對海量數(shù)據(jù)進行快速檢索,這是搜索引擎的必需考慮的問題。這又涉及到數(shù)據(jù)結(jié)構(gòu)和算法。因此,要想進入百度,就必須熟悉一些基本的算法和數(shù)據(jù)結(jié)構(gòu)。思路及解決方案如下:感謝閱讀設(shè)計用TRIE樹實現(xiàn)關(guān)鍵詞到其對應(yīng)id的快速詞典查找謝謝閱讀TRIE樹的每一個節(jié)點為一個包含256個元素的數(shù)組,同時指針指向其下一級節(jié)點節(jié)點定義如下:.structtrienode{int id;structtrienode*child;}TRIENODE;如果TRIE樹的某個節(jié)點的指針為NULL,說明從跟節(jié)點到當前節(jié)點的路徑構(gòu)成文件B中的一個關(guān)鍵詞,感謝閱讀在其節(jié)點的id保存該關(guān)鍵詞的id;如果指針不為NULL,則id對應(yīng)為0或者一個無窮大的整數(shù),標志從根節(jié)點感謝閱讀到當前節(jié)點的路徑不是一個完整的關(guān)鍵詞。將關(guān)鍵詞轉(zhuǎn)化為二進制無符號char.型數(shù)組,即對于漢字等雙字節(jié)字符視為兩個無符號char型整數(shù),謝謝閱讀每個元素的取值范圍在0到255之間。2:生成文件b的TRIE樹步驟1:依次讀取文件b的每一行,對每一行執(zhí)行步驟2到步驟5感謝閱讀步驟2:讀取關(guān)鍵詞id和關(guān)鍵詞,令為key步驟3:依次讀取key的每一個字符,對每一個字符,執(zhí)行步驟4;感謝閱讀步驟4:如果該字符對應(yīng)的指針為NULL,則創(chuàng)建其兒子節(jié)點;感謝閱讀步驟5:為當前節(jié)點的對應(yīng)字符id.置為關(guān)鍵詞id3:根據(jù)A文件生成C文件步驟1:依次讀取文件A的每一行,對每一行執(zhí)行步驟2到步驟5感謝閱讀步驟2:分別獲取當前行關(guān)鍵詞、ip地址和時間步驟3:令關(guān)鍵詞key=c1c2...cm,對c1到cm每個字符,執(zhí)行步驟4謝謝閱讀步驟4:獲取根節(jié)點的第c1個元素指針,轉(zhuǎn)移到節(jié)點node1,謝謝閱讀根據(jù)node1的第c2個元素指針,轉(zhuǎn)移到node2...精品文檔放心下載根據(jù)nodem的第cm個元素,獲取關(guān)鍵詞的id謝謝閱讀.步驟5:往文件c中寫入一行數(shù)據(jù),格式為關(guān)鍵詞的id、ip地址和時間感謝閱讀生成文件B的TRIE樹過程時間復雜度為O(n*m),其中n為文件b行數(shù),m為文件b關(guān)鍵詞的最大長度。TRIE的空間復雜度為O(n*m),n和m含義同上,但由于實際應(yīng)用中關(guān)鍵詞之間可能會有很多前綴相同現(xiàn)象,所以實際耗費空間并不會很高。精品文檔放心下載生成C文件的時間復雜度同樣為O(n*m),n為文件a行數(shù),m為文件a關(guān)鍵詞的最大長度,因為有了TRIE樹之后,給定一個關(guān)鍵詞獲得其id的時間復雜度為關(guān)鍵詞長度。生成C文件的過程謝謝閱讀.除了TRIE樹空間外基本不需要太多額外的空間,空間復雜度為O(1),由于系統(tǒng)有1G的可用內(nèi)存,TRIE占用的空間在幾十兆到200M之間(與關(guān)鍵詞集合有關(guān)),因此本方法完全可行。謝謝閱讀更多面試題,百度網(wǎng)上筆試題及答案編程:1編程:用C語言實現(xiàn)一個revert函數(shù),它的功能是將輸入的字符串在原串上倒序后返回。編程:2編程:用C語言實現(xiàn)函數(shù)void*memmove(void*dest,constvoid*src,size_tn)。memmove函數(shù)的功能是拷貝src所指的內(nèi)存內(nèi)容前n個字感謝閱讀.節(jié)到dest所指的地址上。英文拼寫糾錯:3英文拼寫糾錯:在用戶輸入英文單詞時,經(jīng)常發(fā)生錯誤,我們需要對其進行糾錯。假設(shè)已經(jīng)有一個包含了正確英文單詞的詞典,請你設(shè)計一個拼寫糾錯的程序。請描述你解決這個問題的思路;請給出主要的處理流程,算法,以及算法的復雜度;請描述可能的改進。尋找熱門查詢:4尋找熱門查詢搜索引擎會通過日志文件把用戶每次檢索使用的所有檢索串都記錄下來,每個查詢串的長度為1-255字節(jié)。假設(shè)目前有一千萬個記錄,這些查詢串的重復度比較高,雖然總數(shù)是1千萬,但如果除謝謝閱讀.去重復后,不超過3百萬個。一個查詢串的重復度越高,說明查詢它的用戶越多,也就是越熱門。請你統(tǒng)計最熱門的10個查詢串,要求使用的內(nèi)存不能超過1G。請描述你解決這個問題的思路;請給出主要的處理流程,算法,以及算法的復雜度。集合合并:5集合合并給定一個字符串的集合,格式如:{aaabbbccc},{bbbddd},{eeefff},{ggg},{dddhhh}要求將其中交集不為空的集合合并,要求合并完成后的集合之間無交集,例如上例應(yīng)輸出{aaa感謝閱讀cccdddhhh},{eeefff},{ggg}請描述你解決這個問題的思路;請給出精品文檔放心下載.主要的處理流程,算法,以及算法的復雜度請描述可能的改進。精品文檔放心下載////////////////////////////////1題char*revert(char*str){intn=strlen(str);inti=0;charc;for(i=0;i{c=str;str=str;str=c;}returnstr;}精品文檔放心下載///////////////////////////////////2題void*memmove(void*dest,const精品文檔放心下載void*src,size_tn){assert((dest!=0)&&(src!=0));char*temp=(char*)dest;char*ss=(char*)src;inti=0;for(;i{*temp=*ss;}謝謝閱讀return temp; }./////////////////////////////////////////////////3題(1)思路:字典以字母鍵樹組織,在用戶輸入同時匹配(2)流程:每輸入一個字母:沿字典樹向下一層,a)若可以順利下行,則繼續(xù)至結(jié)束,給出結(jié)果;b)若該處不能匹配,糾錯處理,給出拼寫建議,繼續(xù)至a);謝謝閱讀算法:1.在字典中查找單詞1.在字典中查找單詞字典采用27叉樹組織,每個節(jié)點對應(yīng)一個字母,查找就是一個字母一個字母匹配.算法時間就是單詞的長度k.2.糾錯算法2.糾錯算法情況:當輸入的最后一個字母不能匹配時就提示出錯,感謝閱讀.簡化出錯處理,動態(tài)提示可能處理方法:(a)當前字母前缺少了一個字母:搜索樹上兩層到當前的匹配作為建議;(b)當前字母拼寫錯誤:當前字母的鍵盤相鄰作為提示;根據(jù)分析字典特征和用戶單詞已輸入部分選擇(a),(b)處理復雜性分析:影響算法的效率主要是字典的實現(xiàn)與糾錯處理(a)字典的實現(xiàn)已有成熟的算法,改進不大,也不會成為瓶頸;(b)糾錯策略要簡單有效,如前述情況,是線性復雜度;(3)改進(3)改進策略選擇最是重要,可以采用統(tǒng)計學習的方法改精品文檔放心下載進 。////////////////////////////////////////感謝閱讀.//////4題(1)思路(1)思路:用哈希做思路(2)首先逐次讀入查詢串,算哈希值,保存在內(nèi)存數(shù)組中,同時統(tǒng)計頻度選出前十的頻度,取出對應(yīng)的日志串,簡單不過了。哈希的設(shè)計是關(guān)鍵。////////////////////////////////////////感謝閱讀//////////5題思路:先將集合按照大小排列后,優(yōu)先考慮小的集合是否與大的集合有交思路集。有就合并,如果小集合與所有其他集合都沒有交集,則獨立。獨立的集合在下一輪的比較中不用考慮。這樣就可以盡量減少字符串的比較次數(shù)。當所有集合都獨立的時候,就終止。謝謝閱讀.處理流程:處理流程:1.將集合按照大小排序,組成集合合并待處理列表2.選擇最小的集合,找出與之有交集的集合,如果有,合并之;如果無,則與其它集合是獨立集合,從待處理列表中刪除。3.重復直到待處理列表為空算法:算法:1。將集合按照大小從小到大排序,組成待處理的集合列表。2。取出待處理集合列表中最小的集合,對于集合的每個元素,依次在其他集合中搜索是否有此元素存在:1>若存在,則將此小集合與大集合合并,并根據(jù)大小插入對應(yīng)的位置。轉(zhuǎn)3。2>若不存在,則感謝閱讀.在該集合中取下一個元素。如果無下一個元素,即所有元素都不存在于其他集合。則表明此集合獨立,從待處理集合列表中刪除。并加入結(jié)果集合列表。轉(zhuǎn)3。3。如果待處理集合列表不為空,轉(zhuǎn)2。如果待處理集合列表為空,成功退出,則結(jié)果集合列表就是最終的輸出。算法復雜度分析:算法復雜度分析:假設(shè)集合的個數(shù)為n,最大的集合元素為感謝閱讀排序的時間復雜度可以達到n*log(n)然后對于元素在其他集合中查找,最壞情況下為*m查找一個集合是否與其他集合有交集的最壞情況是m*m*(n-1)合并的時間復雜度不會超謝謝閱讀.過查找集合有交集的最壞情況。所以最終最壞時間復雜度為O(m*m*n*n)需要說明謝謝閱讀的是:此算法的平均時間復雜度會很低,因為無論是查找還是合需要說明的是并,都是處于最壞情況的概率很小,而且排序后優(yōu)先用最小集合作為判斷是否獨立的對象,優(yōu)先與最大的集合進行比較,這些都最大的回避了最壞情況。(3)可能的改進:(3)可能的改進:可能的改進首先可以實現(xiàn)將每個集合里面的字符串按照字典序進行排列,這樣就可以將查找以及合并的效率增高。另外,可能采取恰當?shù)臄?shù)據(jù)結(jié)構(gòu)也可以將查找精品文檔放心下載.以及合并等操作的效率得到提高。百度11月4日網(wǎng)上筆試題及答案(僅供參考)百度11月4日網(wǎng)上筆試題及答案編程:1用C語言實現(xiàn)一個revert函數(shù),它的功能是將輸入的字符串在原串上倒序后返回。感謝閱讀2編程:用 C 語言實現(xiàn)函數(shù) void *.memmove(void*dest,constvoid*src,size_t謝謝閱讀n)。memmove函數(shù)的功能是拷貝src所指的內(nèi)存內(nèi)容前n個字節(jié)精品文檔放心下載到dest所指的地址上。英文拼寫糾錯:在用戶輸入英文單詞時,經(jīng)常發(fā)生錯誤,我們需要對其進行糾錯。假設(shè)已經(jīng)有一個包精品文檔放心下載.含了正確英文單詞的詞典,請你設(shè)計一個拼寫糾錯的程序。請描述你解決這個問題的思路;請給出主要的處理流程,算法,以及算法的復雜度;請描述可能的改進。尋找熱門查詢:搜索引擎會通過日志文件把用戶每次檢索使用的所有檢索串都記錄下來,每個查詢串謝謝閱讀的長度為1-255字節(jié)。假設(shè)目前有一千.萬個記錄,這些查詢串的重復度比較高,雖然總數(shù)是1千萬,但如果除去重復后,不超過精品文檔放心下載百萬個。一個查詢串的重復度越高,說明查詢它的用戶越多,也就是越熱門。請你統(tǒng)計最熱門的10個查詢串,要求使用的內(nèi)存不能超過1G。請描述你解決這個問題的思路;謝謝閱讀請給出主要的處理流程,算法,以及算法的復雜度。5集合合并:.給定一個字符串的集合,格式如:{aaabbbccc},{bbbddd},{eeefff},{ggg},{dddhhh}精品文檔放心下載要求將其中交集不為空的集合合并,要求合并完成后的集合之間無交集,例如上例應(yīng)感謝閱讀輸出{aaabbbcccdddhhh},{eeefff},{ggg}感謝閱讀請描述你解決這個問題的思路;請給出主要的處理流程,算法,以及算法的復雜度.請描述可能的改進。////////////////////////////////1感謝閱讀1題char*revert(char*str){intn=strlen(str);inti=0;charc;for(i=0;i{c=str;str=str;str=c;}.returnstr;}///////////////////////////////////謝謝閱讀2題void*memmove(void*dest,const精品文檔放心下載void*src,size_tn){assert((dest!=0)&&(src!=0));char*temp=(char*)dest;char*ss=(char*)src;inti=0;謝謝閱讀for(;i{*temp++=*ss++;}.returntemp;}////////////////////////////////////////謝謝閱讀/////////3題(1)思路:字典以字母鍵樹組織,在用戶輸入同時匹配(2)流程:.每輸入一個字母:沿字典樹向下一層,a)若可以順利下行,則繼續(xù)至結(jié)束,給出結(jié)果;b)若該處不能匹配,糾錯處理,給出拼寫建議,繼續(xù)至a);算法:1.在字典中查找單詞字典采用27叉樹組織,每個節(jié)點對應(yīng)一個字母,查找就是一個字母謝謝閱讀一個字母匹配.算法時間就是單詞的長度k..2.糾錯算法情況:當輸入的最后一個字母不能匹配時就提示出錯,簡化出錯處理,動態(tài)提示可能處理方法:精品文檔放心下載(a)當前字母前缺少了一個字母:搜索樹上兩層到當前的匹配作為建議;謝謝閱讀(b)當前字母拼寫錯誤:當前字母的鍵盤相鄰作為提示;精品文檔放心下載根據(jù)分析字典特征和用戶單詞已輸入部分選擇(a),(b)處理感謝閱讀復雜性分析:影響算法的效率主要是字典的實現(xiàn)與糾錯處理感謝閱讀.字典的實現(xiàn)已有成熟的算法,改進不大,也不會成為瓶頸;精品文檔放心下載(b)糾錯策略要簡單有效,如前述情況,是線性復雜度;謝謝閱讀(3)改進策略選擇最是重要,可以采用統(tǒng)計學習的方法改進。////////////////////////////////////////謝謝閱讀//////4題(1)思路:.用哈希做(2)首先逐次讀入查詢串,算哈希值,保存在
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度農(nóng)業(yè)種植與銷售合同
- 2024年健康醫(yī)療服務(wù)合同
- 2024年寶石開采權(quán)轉(zhuǎn)讓合同
- 2024年度物流運輸合同:物流公司與貨主就2024年度貨物運輸達成協(xié)議
- 2024年度電競游戲內(nèi)容制作與發(fā)行合同
- 2024年度技術(shù)咨詢合同:化工行業(yè)生產(chǎn)工藝改進咨詢
- 2024光伏發(fā)電項目土石方運輸服務(wù)合同
- 2024玉米買賣合同
- 2024年度項目管理咨詢服務(wù)合同
- 2024年丁方環(huán)境評估服務(wù)合同
- 招投標咨詢合同文本
- 2024統(tǒng)編版(2024)道德與法治小學一年級上冊教學設(shè)計(附目錄)
- 2.2 直線的方程(分層練習)(解析版)
- 《保密法》培訓課件
- 北京市2024-2025學年高三上學期第二次普通高中學業(yè)水平合格性考試英語試卷 含解析
- 第6課《我們神圣的國土》第1課時(教學設(shè)計)-部編版道德與法治五年級上冊
- 綿陽市高中2022級(2025屆)高三第一次診斷性考試(一診)物理試卷(含標準答案)
- 2024年廣西高考歷史試卷真題(含答案解析)
- 2024年秋季新統(tǒng)編版七年級上冊道德與法治全冊教案
- 行政復議法-形考作業(yè)1-國開(ZJ)-參考資料
- 錯漏混料點檢稽核表空白模板
評論
0/150
提交評論