二、演算法與程式設計題(本題共45分)
1. 使用c/c++編寫函式,實現字串反轉,要求不使用任何系統函式,且時間複雜度最小,函式原型:char* reverse_str(char* str)。(15分)
演算法實現:
/*實現字串翻轉*/
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分)
分析:此題實際上考的是站的應用,即曾經練過的括號匹配問題。
演算法實現:
#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分 演算法實現 cpp view plain copy 實現字串翻轉 char reverse str 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 解答 註明 這裡每次上下樓都帶著電池和燈泡,以及每次介面...