算法:替換空格
替換空格
請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù),把字符串 s 中的每個(gè)空格替換成"%20"。
示例
輸入:s = "We are happy."
輸出:"We%20are%20happy."
限制
0 <= s 的長(zhǎng)度 <= 10000
字符數(shù)組
由于每次替換從 1 個(gè)字符變成 3 個(gè)字符,使用字符數(shù)組可方便地進(jìn)行替換。建立字符數(shù)組的長(zhǎng)度為 s 的長(zhǎng)度的 3 倍,這樣可保證字符數(shù)組可以容納所有替換后的字符。
獲得 s 的長(zhǎng)度 length
創(chuàng)建字符數(shù)組 array,其長(zhǎng)度為 length * 3
初始化 size 為 0,size 表示替換后的字符串的長(zhǎng)度
從左到右遍歷字符串 s
獲得 s 的當(dāng)前字符 c
如果字符 c 是空格,則令 array[size] = '%',array[size + 1] = '2',array[size + 2] = '0',并將 size 的值加 3
如果字符 c 不是空格,則令 array[size] = c,并將 size 的值加 1
遍歷結(jié)束之后,size 的值等于替換后的字符串的長(zhǎng)度,從 array 的前 size 個(gè)字符創(chuàng)建新字符串,并返回新字符串
代碼如下:

復(fù)雜性分析
時(shí)間復(fù)雜度:O(n)。遍歷字符串 s 一遍。
空間復(fù)雜度:O(n)。額外創(chuàng)建字符數(shù)組,長(zhǎng)度為 s 的長(zhǎng)度的 3 倍。
寫在最后
本文內(nèi)容出處是力扣官網(wǎng),希望和大家一起刷算法,在后面的路上不變禿但是變強(qiáng)!
好兄弟可以點(diǎn)贊并關(guān)注我的公眾號(hào)“javaAnswer”,全部都是干貨。
