面試IT業界頂尖企業所應該知道的10道題 1

2021-06-28 05:10:09 字數 737 閱讀 7919

題目: 現有乙個包含一千萬個單詞的文字檔案, 每個單詞佔一行, 每行小於1k位元組. 要求找出出現次數最多的10個單詞. 如果要從一千個這樣的檔案中找出出現次數最多的10個單詞(所有單詞加起來去重後不超過一千萬個), 你會怎麼設計?

難度: 10k

領域: 編碼, 架構, 分布式

這道題沒有任何演算法上的難度, 最簡單的思路就是, 一次讀取一行, 計數. 先從單個檔案來考慮, 首先考察面試者最基本的用計算機解決簡單問題的能力.

* shell

如果面試者的簡歷提到 linux shell, 讓其用一行 shell 命令(sort, uniq)來解.

* 指令碼語言

要求面試者用任何一種通用的指令碼語言來解決, 例如 php, python. 要求其手寫出無語法錯誤的可執行的完全正確的**, 考察其編碼能力基本功.

* sql

假設單詞是儲存在 mysql 資料庫表中, 要求面試者用一條 sql 語句來解, 考察其是否掌握 sql, 以及 count(), group by, order by 等關鍵字的使用.

* 多執行緒, 多機解決的思路

將條件設定為有一千個或者更多的檔案的情況, 如果面試者能主動想到如上方法的侷限性和效能問題, 可以加分. 要求面試者分析出影響效能的瓶頸在哪.

如果面試者能想到多執行緒, 多機分布式, 要求其設計乙個大致的方案.

你所應該知道的雲計算

感覺像是雲計算的乙個推崇者,為雲計算在做廣告,robyn peterson的文章what you need to know about cloud computing。雲計算可以保證我們不再受硬體的困擾,真的是這樣嗎?在為乙個小型商業或者大型企業構建it結構的時候,我們常常需要花費大筆的錢財去購買裝...

你所應該要知道的面試藝術與技巧

面試乙份工作需要哪些 1.專業知識 如果沒有任何專業技能,那麼靠什麼進入企業呢?如果想要進入好的企業,沒有深厚的專業技能無疑是不行的。2.業務知識 企業想要招的是有能力為企業帶來利益的人,如果你不能將專業知識聯合起來運用,那麼你就不是企業的理想人才。所以你還要了解業務知識,能熟練運用知識,即所謂的專...

android裝置你所應該知道的Android設計

時光緊張,先記一筆,後續優化與完善。當然很多系統的問題被誇大其詞,其中一些android的問題在新版本中已不復存在,針對仍然存在的一些問題,本文提供了一些處理方案,同時也為將要開始計畫巨大的android應用的你提供一些提議。上圖分別是google在2010年蒲月計畫的action bar模式提議,...