2014百度校招筆試題

2021-06-19 10:32:53 字數 1427 閱讀 7815

二、演算法與程式設計題(本題共45分)

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

演算法實現:

[cpp]view plain

copy

/*實現字串翻轉*/

char

* reverse_str(

char

* str)  

char

*begin;  

char

*end;  

begin = end = str;  

while

(*end != 

'\0'

) //end指向字串的末尾

--end;  

char

temp;  

while

(begin < end) 

//交換兩個字元

return

str; 

//返回結果

}  void

main()    

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

分析:此題實際上考的是站的應用,即曾經練過的括號匹配問題。

演算法實現:

[cpp]view plain

copy

#include 

#include 

using

namespace

std;  

/*判斷表示式是否合法*/

bool

isvalid(

char

*str)  

else

if(*str == 

')')  

else

}  if(op.empty())  

return

true

;  else

return

false

;  }  

/*消除中間的括號*/

char

*elimination_brackets(

char

*str)  

*temp++ = *str++;    

}    

*temp++ = ')'

;  //將有括號加上

*temp = '\0'

;    

return

result;    

}  void

main()  

}  

2014百度校招筆試題

二 演算法與程式設計題 本題共45分 1.使用c c 編寫函式,實現字串反轉,要求不使用任何系統函式,且時間複雜度最小,函式原型 char reverse str char str 15分 演算法實現 實現字串翻轉 char reverse str char str char begin char ...

2014百度校招筆試題

二 演算法與程式設計題 本題共45分 1.使用c c 編寫函式,實現字串反轉,要求不使用任何系統函式,且時間複雜度最小,函式原型 char reverse str char str 15分 演算法實現 cpp view plain copy 實現字串翻轉 char reverse str char ...

百度2014校招筆試題(一)

演算法和程式設計題 1 題意 一幢大樓的底層有1001根電線,這些電線一直延伸到大樓樓頂,你需要確定底層的1001個線頭和樓頂的1001次線頭的對應關係。你有乙個電池,乙個燈泡,和許多很短的電線,你需要上下樓幾次才能確定電線接頭的對應關係 2 解答 註明 這裡每次上下樓都帶著電池和燈泡,以及每次介面...