百度筆試題
1、請實現兩棵樹是否相等的比較,相等返回,否則返回其他值,並説明算法複雜度。
數據結構為:
typedef struct_TreeNode{
char c;
TreeNode *leftchild;
TreeNode *rightchild;
}TreeNode;
函數接口為:int CompTree(TreeNode* tree1,TreeNode* tree2);
注:A、B兩棵樹相等當且僅當Root->c==RootB-->c,而且A和B的左右子樹相等或者左右互換相等。
2、寫一段程序,找出數組中第k大小的數,輸出數所在的位置。例如{2,4,3,4,7}中,第一大的數是7,位置在4。第二大、第三大的數都是4,位置在1、3隨便輸出哪一個均可。
函數接口為:int find_orderk(const int* narry,const int n,const int k)
2'、已知一個字串由GBK漢字和ansi編碼的數字字母混合組成,編寫c語言函數實現從中去掉所有ansi編碼的字母和數字(包括大小寫),要求在原字串上返回結果。
函數接口為:int filter_ansi(char* gbk_string)
注:漢字的GBK編碼範圍是0x8140-0xFEFE
百度筆試題(感謝網友lihan提供)
shury 發表於 2005-12-5 17:05:00
1)此題10分
對任意輸入的正整數N,編寫C程序求N!的尾部連續0的個數,並指出計算複雜度。如:18!=6402373705728000,尾部連續0的個數是3。
(不用考慮數值超出計算機整數界限的問題)
2)此題10分
編寫一個C語言函數,要求輸入一個url,輸出該url是首頁、目錄頁或者其他url
如下形式叫做首頁:
如下形式叫做目錄頁:
請注意:
a) url有可能帶http頭也有可能不帶
b)動態url(即含有"?"的url)的一律不算目錄頁,如:
另:如果你會linux,請用linux下的grep命令實現第2題的功能(附加5分)。
3)此題40分
如果必須從網頁中區分出一部分"重要網頁"(例如在10億中選8億),比其他網頁更值得展現給用户,請提出一種方案。
4)此題40分
假設有10億網頁已經被我們存下來,並提供如下信息:網頁全文(即網頁的源碼)、全文長度、網頁正文(即網頁中提取的主體文字)、
正文長度,以及其他網頁提取物等,現在希望去掉其中的重複網頁,請提出可行的方案,計算出每個網頁對應的重複度,你可以自己
對網頁重複下定義,也可以提出需要哪些更多的網頁提取物來實現更好的去重複方案