首先要看輸入是什麼
書上的輸入是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 替換字串中...