4 替換空格

2021-10-23 11:49:57 字數 773 閱讀 8940

首先要看輸入是什麼

書上的輸入是char string

leetcode的是string

# string

class solution

else

}return array;

}};

class solution 

/*original_length為字串str的實際長度*/

int original_length = 0; //原始長度

int number_blank = 0; //空格數

int i;

while(str[i++] != '\0')

}/*new_length為把空格替換成'%20'之後的長度*/

int new_length = original_length + 2 * number_blank;

int index_original = original_length-1; //原始字串末尾索引值

int index_new = new_length-1; //計算長度後的字串末尾索引值

/*index_original指標開始向前移動,如果遇到空格,替換成'%20',否則進行複製操作*/

while(index_original >= 0 && index_new > index_original)

else

--index_original;

}}};

4 替換空格

題目要求 替換空格。演算法解析 字串長度為14.先計算有多少個空格,測試字串為2個。這樣總長度為18.從最後乙個字元向後移動,注意控制指標,空格是1個字元,20是三個。include void replacestr char str printf d n count space int p1 str...

面試題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 替換字串中...