- 相關推薦
百度軟件研發工程師筆試題
一,簡答題(本題共30分)1. 當前計算機系統一般會采用層次結構來存儲數據,請介紹下典型的計算機存儲系統一般分為哪幾個層次,為什么采用分層存儲數據能有效提高程序的執行效率?(10分)
2. Unix/Linux系統的僵尸進程是如何產生的?有什么危害?如何避免?(10)
3. 簡述Unix/Linux系統中使用socket庫編寫服務器程序的流程,請分別用對應的socket通信函數表示,
百度軟件研發工程師筆試題
。二,算法與程序設計題(本題共45分)
1, 使用C/C++語言寫一個函數,實現字符串的反轉,要求不能用任何系統函數,且時間復雜度最小。函數原型是:char *reverse_str(char *str)(15分)
2, 給定一個如下輸入格式的字符串,(1,(2,3),(4,(5,6),7))括號內的元素可以是數字,也可以另一個括號,請實現一個算法消除嵌套的括號。比如把上面的表達式變成:(1,2,3,4,5,6,7),如果表達式有誤請報錯。(15分)
3, 相似度計算用于衡量對象之間的相似程度,在數據挖據,自然語言處理中使一個基礎性
計算,在廣告檢索服務中往往也會判斷網民檢索Query和廣告Adword的主題相似度。假設Query或者Adword的主題屬性定義為一個長度為10000的浮點數據Pr[10000](稱之為主題概率數組),其中Pr[i]表示Query或者Adword屬于主題Id為i的概率,而Query和Adword的相似度簡化定義為兩者主題概率數組的內積,即sim(Query,Adword)=sum(QueryPr[i]*AdwordPr[i])(0<==i<10000).在實際應用場景中,由于大多數主題的概率都為0,所以主題概率數組往往比較稀疏,在實現時會以一個緊湊型數組topic_info_t[]的方式保存,其中100<=數組大小<=1000,并按照 topic_id遞增排列,0<=topic_id<10000,0 ,0<topic_pr<1.
Struct topic_info_t{
Int topic_id;
Float topic_pr;
}
現在給出Query的topic_info_t數組和N(N>=5000)個Adwords的 topic_info-t數組,現要求出Query與Adwords的相似度最大值,即max(sim(Query,Adword[i])(0<=i<N).
Float max_sim(const vector& query_topic_info,
Const vector adwords_topic_info[],
Int adwords_number);
編寫代碼求時間復雜度最低的算法,并給出時間復雜度分析,
資料共享平臺
《百度軟件研發工程師筆試題》(http://m.rusnota.com)。(15分)三,系統設計題(本題共25分)
在企業中,對生產數據進行分析具有很重要的意義。但是生產數據通常不能直接用于數據分析,通常需要進行抽取,轉換和加載,也就是業界常識的ETL.
生產數據
為了便于開發和維護,并提高數據實時性,通常將一個完整的ETL過程分析哼多個任務,組成流水線,如下圖所示:
假設任務定義和任務之間的依賴關系都保存在文件中,文件格式分別如下:
表格1任務元數據
文件 格式 例子 任務定義文件 每行表示一個任務,3列:
1, ID
2, 開始運行時間
3, 最大運行時長(分鐘) 100,01:00:00,60
110,02:00:00,30 任務依賴關系 每行表示一個關系,2列:
1,前置任務
2, 后置任務 100,110 問題:
1, 下圖是ETL調度系統的模塊圖。請描述各個模塊的主要職責,以及各個線條的含義。(10分)
2, 添加依賴關系時要避免產生環,假設系統同一個時刻只允許一個人添加任務依賴,請實現一個函數來檢查新的依賴是否導致環,如果該依賴的上游存在環會導致非正常的調度,因此也希望能避免。(10分)
a) 函數名:checkCycle
b) 輸入:pairs,已存在的依賴關系((pre,post)),newPair新的依賴關系(pre,post)
c) 輸出:True:不存在環,False:存在環
3, 如果調度時,某個任務在其依賴的任務之前執行,必然導致錯誤,請實現調度算法,確保任務按照依賴順序執行?(10分)
a) 函數名 schedule
b) 輸入1:tasks,整型數組
c) 輸入2:tasks-relations,二元組數組,每個二元組表示一組關系
d) 輸出:task_id序列,并行執行的用“,”分隔,其他的用“;”分隔
4, 給定一個任務,如何計算出他的最晚完成時間?(10分)
a) 函數名:calMaxEndTime
b) 輸入1:tasks,3元組數組,(task_id,start_time,max_run_time);
c) 輸入2:task-relations,2元組數組,每個二元組表示一組關系;
d) 輸入3:task-id
e) 輸出:最晚完成時間;
【百度軟件研發工程師筆試題】相關文章:
百度軟件測試常見筆試題09-06
美團網研發工程師筆試題08-29
百度筆試題目10-26
軟件測試工程師筆試題及答案10-10
百度校園招聘筆試題精選07-22
百度校招數據處理工程師筆試題10-02
百度測試工程師實習生崗位筆試題08-13
筆試面試題—軟件測試工程師06-15
百度上海數據處理工程師筆試題目06-12
百度網絡筆試題目07-19