03 替換空格(劍指Offer 05)

2021-10-17 20:13:13 字數 773 閱讀 6806

請實現乙個函式,把字串 s 中的每個空格替換成"%20"。

首先擴充陣列到每個空格替換成"%20"之後的大小。

然後從後向前替換空格,也就是雙指標法,過程如下:

i指向新長度的末尾,j指向舊長度的末尾。

「其實很多陣列填充類的問題,都可以先預先給陣列擴容帶填充後的大小,然後在從後向前進行操作。」

這麼做有兩個好處:

1.不用申請新陣列。

2.從後向前填充元素,避免了從前先後填充元素要來的 每次新增元素都要將新增元素之後的所有元素向後移動。

//2.擴充字串至替換後的長度

//將空格替換成%20,即每個空格需要額外擴充兩個字元長度

s.resize

(oldsize + count *2)

;//新字串長度

int newsize = s.

size()

;//定義i指標指向老字串的末尾,j指標指向新字串的末尾

for(

int i = oldsize -

1, j = newsize -

1; i < j; i--

, j--

)//老字串的位置是空格,則新字串相應位置新添%20

else

}return s;}}

;

替換空格 劍指Offer 05 替換空格

請實現乙個函式,把字串 s 中的每個空格替換成 20 在python語言中,字串被設計成不可變型別,即無法直接修改字串的某一位字元,需要新建乙個字串實現。初始化乙個list 遍歷字串s中每個字元c,若c為空格,則在list中新增 20 若c不為空格,則在list中新增字元c。時間複雜度 o n 遍歷...

劍指 Offer 05 替換空格

劍指 offer 05.替換空格 請實現乙個函式,把字串 s 中的每個空格替換成 20 示例 1 方法一 遍歷新增 由於每次替換從 1 個字元變成 3 個字元,使用字元陣列可方便地進行替換。建立字元陣列地長度為 s 的長度的 3 倍,這樣可保證字元陣列可以容納所有替換後的字元。class solut...

劍指 Offer 05 替換空格

請實現乙個函式,把字串 s 中的每個空格替換成 20 示例 1 限制 0 s 的長度 10000 我的解答 class solution 這道題還是很簡單的,使用replace或者遍歷整個字串,每到空格就新增 20即可。不過在做完後發現,replace和replaceall方法具有差別,replac...