二、演算法與程式設計題(本題共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 解答 註明 這裡每次上下樓都帶著電池和燈泡,以及每次介面...