另外一種較好的解法是從後往前替換,具體做法是從頭遍歷計算所有空格數,計算出總的長度。 該解法的前提條件是若在源字串上替換就要求源字串有足夠的空間來容納新的字串。時間複雜度為o(n)!!!
解決辦法一:利用replace函式
將str轉為字串後呼叫replace方法,將空格轉為「%20」即可。需要注意的是replace方法呼叫的結果是返回值型別為string的結果而非void。
public
class
solution
}
public
class
solution
else
}return sbuilder.
tostring()
;}}
劍指offer 將字串中空格替換為20
將乙個字串中的所有空格替換成 20 最直觀的做法是從頭到尾掃瞄字串,然後每次碰到空格時便替換,並將空格後面所有的字元向後移兩個位元組。假設字串長度為n,對每個空格字元,需要移動後面o n 個字元,因此對含有n個空格的字串而言總的時間效率是o n 2 時間複雜度達到n平方,說明程式效率並不高,因此可以...
劍指offer 字串替換空格
見到這個題目,我們很容易想到 申請一塊新空間,儲存變化後的字串,顯然不是我們想要的結果 由此,我們可以想到如下方法 1 先遍歷一次字串,統計出字串中空格的總數,並可以由此計算出替換之後字串總長度。每替換乙個空格,長度增加2,因此替換以後字串的長度等於原來的長度加上2乘以空格數目。2 然後從後往前開始...
替換字串中空格
如 輸入 i love you baby 輸出 i20 love 20you 20baby 時間複雜度為o n 解法,先遍歷一遍陣列計算出空格數量,由於替換乙個空格需要多增加2個位元組,所以替換後增加位元組數應該為 n 2 sum space 然後使用兩個指標分別指向原來字串的末尾和替換後新字串的末...