- 相關(guān)推薦
百度2012實(shí)習軟件研發(fā)工程師(C/C++開(kāi)發(fā))筆試題
找兄弟單詞,例如mary和army是兄弟單詞,即所含字母是一樣的,只是字母順序不同,給出一個(gè)單詞,要求在一個(gè)字典中找出該單詞的所有兄弟單詞,給出實(shí)現方案。我的解答:
把各個(gè)單詞a的各個(gè)字母按照字母表順序排序,排序后的新單詞是b,然后根據b構建一棵二叉平衡樹(shù),節點(diǎn)值為b,各個(gè)節點(diǎn)存儲一個(gè)數組 ,就是b對應的所有a,這樣很容易找到所有的兄弟單詞
2. 關(guān)于兩個(gè)鏈表是否含有相同節點(diǎn)的,題目說(shuō)什么網(wǎng)絡(luò )爬蟲(chóng),從一個(gè)頁(yè)面開(kāi)始爬,將爬到的url存到一個(gè)鏈表里,假設每個(gè)頁(yè)面至多含有一個(gè)link(重點(diǎn)信息),現在從兩個(gè)不同頁(yè)面開(kāi)始爬,將得到的url放到鏈表就得到了兩個(gè)鏈表,要求判斷兩個(gè)鏈表是否含有相同的url,假設每個(gè)鏈表的包含的url有上百億個(gè),不能用hash,給出算法。
我的解答:
上百億個(gè)url應該是存在文件里面的,不會(huì )全部放到內存中。所以建立一棵B樹(shù)來(lái)存儲第一個(gè)鏈,對應的url存儲在文件中。然后依次把第二個(gè)鏈各個(gè)url在B樹(shù)做查找工作即可
3. 關(guān)于百度suggestion的
給出實(shí)現這個(gè)功能主要的數據結構和算法,以及優(yōu)化的方法,提高時(shí)間和空間的效率。
我的解答:
采用堆排序算法
每個(gè)對應十個(gè)節點(diǎn)
[百度2012實(shí)習軟件研發(fā)工程師(C/C++開(kāi)發(fā))筆試題]相關(guān)文章:
1.百度2012實(shí)習軟件研發(fā)工程師(C/C++開(kāi)發(fā))筆試題
【百度實(shí)習軟件研發(fā)工程師(C/C++開(kāi)發(fā))筆試題】相關(guān)文章:
c面試題08-04
軟件開(kāi)發(fā)工程師就業(yè)前景分析12-07
軟件開(kāi)發(fā)專(zhuān)業(yè)實(shí)習報告08-27
軟件開(kāi)發(fā)專(zhuān)業(yè)畢業(yè)實(shí)習報告06-28
軟件工程師實(shí)習報告01-04
軟件開(kāi)發(fā)實(shí)習自我鑒定3篇03-30