題目:請實現乙個函式,把字串中的每個空格替換成 「%20」。
要求:在原來的字串上做替換,並保證輸入的字串後面有足夠的空餘記憶體,常數空間複雜度。
#include using namespace std;
void replaceblank(char string, int maxlength)
int newlength = originallength + 2 * numofblank;
if (newlength > maxlength)
int indexoforiginal = originallength - 1;
int indexofnew = newlength - 1;
while (indexoforiginal >= 0 && indexofnew > indexoforiginal)
--indexoforiginal;
} }void test(char* testname, char string, int length, char expected)
// 空格在句子中間
void test1()
// 空格在句子開頭
void test2()
// 空格在句子末尾
void test3()
// 連續有兩個空格
void test4()
// 傳入null
void test5()
// 傳入內容為空的字串
void test6()
//傳入內容為乙個空格的字串
void test7()
// 傳入的字串沒有空格
void test8()
// 傳入的字串全是空格
void test9()
int main()
面試題4 替換空格
面試題4 實現乙個函式,把字串中的空格替換成 20 從前向後移動時,假如字串的長度為n。對於每個空格字元,需要移動後面o n 個字元,對含有o n 個空格字元的字串而言總的時間效率是o n n 從後向前移動時,所有的字元只需要複製一次,時間效率為o n void replaceblank char ...
面試題4 替換空格
注 圖中帶陰影的區域表示被移動的字元。a 把第乙個指標指向字串的結尾,把第二個指標指向替換後的字串的末尾。b 依次複製字串的內容,直至第乙個指標碰到第乙個空格。c 把第乙個空格替換成 20 把第乙個指標向前移動1格,把第二個指標向前移動3格。d 依次向前複製字串中的字元,直至碰到空格。e 替換字串中...
面試題4 替換空格
面試題4 替換空格 提交 參與人數 10327 時間限制 1秒 空間限制 32768k 本題知識點 字串 分析 ac 檔名 aimedatoffer replacespace.cpp cpp view plain copy include include include using namespac...