劍指offer 面試題4

2021-07-03 10:12:42 字數 552 閱讀 3322

替換空格

本題的解決方法還有乙個限制,即在當前字串上進行替換操作,不能申請額外記憶體。所以,前提該字串陣列的總長度要比替換後的長度大,不然替換失敗。

#include

using namespace std;

void replaceblank(char

str,int length)

int indexoriginal = originallen;

int newindex = originallen + 2 * numofblank;

if (newindex >= length)

return;

while (indexoriginal>=0 && indexoriginalif (' ' == str[indexoriginal])

else

str[newindex--] = str[indexoriginal];

indexoriginal--;

}}int main()

劍指offer面試題4

替換空格 題目 請實現乙個函式,把字串中的每個空格替換成 20 例如輸入 則輸出 此題是將字串中的空格用 20來代替,使用傳統的方法來做的話時間複雜度為o n2 效果上來看並不好,而且實現起來也非常的複雜,還存在將後面的字元覆蓋的情況,因此我們使用另一種方法來實現此題 我的方法是 遍歷一遍字串,統計...

替換空格(劍指offer面試題4)

分析 從頭到尾掃瞄字串,遇到空格就替換,導致後面的字元都要向後移,意味著總時間複雜度為o n 2 更好的辦法,從字串後面遍歷替換。先遍歷所有的空格,每多乙個空格,字串長度加2個,也就是說最後替換後的字串長度為原長度 2 空格數,設定兩個指標,指向原始字串末尾和新字串末尾,依次向前遍歷,原始字串指標遇...

劍指offer 面試題4 替換空格

題目由來 在網路程式設計中,如果url引數中含有特殊字元,如空格 等,可能導致伺服器端無法獲得正常的引數值。我們需要將這些特殊符號轉換成伺服器可以識別的字元。轉換的規則是在 後面跟上ascii碼的兩位十六進製制的表示。比如空格的ascii碼是32,即十六進製制的0x20,因此空格被替代成 20 思路...