請實現乙個函式,把字串 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...