34--替换空格
1.問題描述
請實現(xiàn)一個函數(shù),把字符串 s 中的每個空格替換成"%20"。
示例 1:
輸入:s = “We are happy.”
輸出:“We%20are%20happy.”
2.解題思路
由于每次替換從 1 個字符變成 3 個字符,使用字符數(shù)組可方便地進行替換。建立字符數(shù)組地長度為 s 的長度的 3 倍,這樣可保證字符數(shù)組可以容納所有替換后的字符。
1.獲得 s 的長度 length
2.創(chuàng)建字符數(shù)組 array,其長度為 length * 3
3.初始化 size 為 0,size 表示替換后的字符串的長度
4.從左到右遍歷字符串 s
-
獲得 s 的當前字符 c
-
如果字符 c 是空格,則令 array[size] = ‘%’,array[size + 1] = ‘2’,array[size + 2] = ‘0’,并將 size 的值加 3
-
如果字符 c 不是空格,則令 array[size] = c,并將 size 的值加 1
5.遍歷結束之后,size 的值等于替換后的字符串的長度,從 array 的前 size 個字符創(chuàng)建新字符串,并返回新字符串
時間復雜度:O(n) 遍歷字符串 s 一遍。
空間復雜度:O(n) 額外創(chuàng)建字符數(shù)組,長度為 s 的長度的 3 倍。
class Solution {public String replaceSpace(String s) {int length = s.length();char[] array = new char[length * 3];int size = 0;for (int i = 0; i < length; i++) {char c = s.charAt(i);if (c == ' ') {array[size++] = '%';array[size++] = '2';array[size++] = '0';} else {array[size++] = c;}}String newStr = new String(array, 0, size);return newStr;} }總結
- 上一篇: 网络爬虫--26.Scrapy中下载器中
- 下一篇: c语言的翻译叫什么_什么是编译器?什么是