百度2014筆試演算法題彙總

2021-09-01 19:56:36 字數 1057 閱讀 3156

1.使用c/c++編寫函式,實現字串反轉,要求不使用任何系統函式,且時間複雜度最小,函式原型:char* reverse_str(char* str)。

2.給定乙個如下格式的字串(1,(2,3),(4,(5,6),7))括號內的元素可以是數字,也可以是另乙個括號,請實現乙個演算法消除巢狀的括號,比如把上面的表示式變成:(1,2,3,4,5,6,7),如果表示式有誤請報錯。

3.分別實現二叉查詢數root中兩個節點的最近相連的雙親節點:遞迴,非遞迴函式。

4.給出任意乙個正整數,算出大於它的最小不重複數(即不存在相鄰兩個數相同的情況)

5.給出乙個長度為n的字串,求裡面最長的回文子串長度。 6.

一幢大樓的底層有1001根電線,這些電線一直延伸到大樓樓頂,你需要確定底層的1001個線頭和樓頂的1001次線頭的對應關係。你有乙個電池,乙個燈泡,和許多很短的電線,你需要上下樓幾次才能確定電線接頭的對應關係.

解答:註明:這裡每次上下樓都帶著電池和燈泡,以及每次介面連線,對應介面的之前連線過的線都將拆除,所以下面不再說明。

首先將底層一對介面(這裡假設為(buttom1,buttom2))連線起來,然後上樓,根據提供的電池和燈泡的亮滅,確定頂層的一對(這裡假設為(top1,top2)),接著將頂層的另一對連線起來(假設為(top3,top4)),然後下底層,確定和(top3,top4)對應的一對(假設為(buttom3,buttom4)),然後將底層的 buttom1和buttom3連線,底層的buttom2和buttom4連線,上樓,分別將確定過的兩對交換對接,即依次測試(top1,top4),(top2,top3)或者(top1,top3),(top2,top4),直接燈泡亮為止即可確定這四個介面的對接關係。這樣第一次確定4個介面需要上下樓3次。

然後根據第一次確定的4個介面,在頂層分別和剩餘的介面中的其中四個介面連線,下到底層,和第一次確定四個介面一樣,即可確定8個介面。這時確定8根只需要在上面的基礎上加1次就可以。接下來就可以確定16個介面,並以此指數增加,從而到2的10次方,即1024,即可全部確定1001個介面,而從2的3次方到2的10次方,共8次.

最後得出第一次確定的3次加上接下來的8次,共需11次即可確定他們的對應關係。

人人網2014筆試演算法題彙總

1.給出乙個有序陣列啊,長度為len,另外給出第三個數x,問是否能在陣列中找到兩個數,這兩個數之和等於第三個數x。我們首先看到第一句話,這個陣列是有序的,所以,我們可以定義兩個指標,乙個指向陣列的第乙個元素,另乙個指向應該指向的位置 這個需要看具體的實現和陣列給定的值 首先計算兩個位置的和是否等於給...

暴風影音2014筆試演算法題彙總

1.自定義實現字串轉為整數的演算法,例如把 123456 轉成整數123456.輸入中可能存在符號,和數字 返回結果的有效標誌 enum status int gstatus valid int strtoint const char str while digit 0 digit 非法輸入 els...

美團網2014筆試演算法題彙總

1.鍊錶翻轉。給出乙個鍊錶和乙個數k,比如鍊錶1 2 3 4 5 6,k 2,則翻轉後2 1 4 3 6 5,若k 3,翻轉後3 2 1 6 5 4,若k 4,翻轉後4 3 2 1 5 6,用程式實現。include using namespace std struct listnode listn...