面試題4 替換空格

2021-06-28 19:14:21 字數 606 閱讀 2403

/*面試題4:

實現乙個函式,把字串中的空格替換成「20%」。

從前向後移動時,假如字串的長度為n。對於每個空格字元,需要移動後面o(n)個字元,對含有o(n)個空格字元的字串而言總的時間效率是o(n*n)。

從後向前移動時,所有的字元只需要複製一次,時間效率為o(n)。*/

void replaceblank(char string, int length)

int newlength = originallength + numberofblank * 2;//總共需要的記憶體長度

if(newlength > length)

return;

int indexoforiginal = originallength;//原字串的末尾

int indexofnew = newlength;//新字串的末尾

while(indexoforiginal >= 0 && indexofnew > indexoforiginal)

else

-- indexoforiginal;}}

//測試用例:字串中有空格,沒有空格,特殊輸入測試(字串是null指標,是空字串,只有乙個空格,連續多個空格)

面試題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...

面試題4 替換空格

題目 請實現乙個函式,把字串中的每個空格替換成 20 要求 在原來的字串上做替換,並保證輸入的字串後面有足夠的空餘記憶體,常數空間複雜度。include using namespace std void replaceblank char string,int maxlength int newle...