- 相關推薦
百度招聘筆試題及答案
編程:
用C語言實現一個revert函數,它的功能是將輸入的字符串在原串上倒序后返回,
百度招聘筆試題及答案
。2編程:
用C語言實現函數void*memmove(void*dest,constvoid*src,size_tn)。memmove
函數的功能是拷貝src所指的內存內容前n個字節
到dest所指的地址上。
3英文拼寫糾錯:
在用戶輸入英文單詞時,經常發生錯誤,我們需要對其進行糾錯。假設已經有一個包
含了正確英文單詞的詞典,請你設計一個拼寫糾錯
的程序。
(1)請描述你解決這個問題的思路;
(2)請給出主要的處理流程,算法,以及算法的復雜度;
(3)請描述可能的改進(改進的方向如效果,性能等等,這是一個開放問題)。
4尋找熱門查詢:
搜索引擎會通過日志文件把用戶每次檢索使用的所有檢索串都記錄下來,每個查詢串
的長度為1-255字節。假設目前有一千萬個記錄,
這些查詢串的重復度比較高,雖然總數是1千萬,但如果除去重復后,不超過3百萬個
。一個查詢串的重復度越高,說明查詢它的用戶越多,
也就是越熱門。請你統計最熱門的10個查詢串,要求使用的內存不能超過1G。
(1)請描述你解決這個問題的思路;
(2)請給出主要的處理流程,算法,以及算法的復雜度。
5集合合并:
給定一個字符串的集合,格式如:
{aaabbbccc},{bbbddd},{eeefff},{ggg},{dddhhh}
要求將其中交集不為空的集合合并,要求合并完成后的集合之間無交集,例如上例應
輸出
{aaabbbcccdddhhh},{eeefff},{ggg}
(1)請描述你解決這個問題的思路;
(2)請給出主要的處理流程,算法,以及算法的復雜度
(3)請描述可能的改進(改進的方向如效果,性能等等,這是一個開放問題)。
////////////////////////////////1
1題
char*revert(char*str)
{
intn=strlen(str);
inti=0;
charc;
for(i=0;i{
c=str;
str=str[n-i];
str[n-i]=c;
}
returnstr;
}
///////////////////////////////////
2題
void*memmove(void*dest,constvoid*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)若可以順利下行,則繼續至結束,給出結果;
b)若該處不能匹配,糾錯處理,給出拼寫建議,繼續至a);
算法:
1.在字典中查找單詞
字典采用27叉樹組織,每個節點對應一個字母,查找就是一個字母
一個字母匹配.算法時間就是單詞的長度k.
2.糾錯算法
情況:當輸入的最后一個字母不能匹配時就提示出錯,簡化出錯處理,動態提示
可能處理方法:
(a)當前字母前缺少了一個字母:搜索樹上兩層到當前的匹配作為建議;
(b)當前字母拼寫錯誤:當前字母的鍵盤相鄰作為提示;(只是簡單的描述,可
以有更多的)
根據分析字典特征和用戶單詞已輸入部分選擇(a),(b)處理
復雜性分析:影響算法的效率主要是字典的實現與糾錯處理
(a)字典的實現已有成熟的算法,改進不大,也不會成為瓶頸;
(b)糾錯策略要簡單有效,如前述情況,是線性復雜度;
(3)改進
策略選擇最是重要,可以采用統計學習的方法改進,
資料共享平臺
《百度招聘筆試題及答案》(http://salifelink.com)。【百度招聘筆試題及答案】相關文章:
百度校園招聘筆試題及個人答案09-25
百度校園招聘筆試題精選07-22
百度校園招聘硬件筆試題08-30
百度校園招聘產品經理筆試題10-11
百度校園招聘前端開發筆試題08-16
百度校園招聘產品經理筆試題目09-12
百度校園招聘產品經理筆試題目07-10
百度校園招聘技術研發筆試題目09-10
百度停止招聘?07-17
百度校園招聘web前端廣州站筆試題08-21