替换空格

题目描述:请实现一个函数,把字符串 s 中的每个空格替换成”%20”。

示例 1:

输入:s = “We are happy.”
输出:”We%20are%20happy.”

限制:0 <= s 的长度 <= 10000

1
2
3
4
5
class Solution {
public String replaceSpace(String s) {

}
}

方法一:replace

1
2
3
4
5
class Solution {
public String replaceSpace(String s) {
return s.replace(" ", "%20");
}
}

执行结果:通过

  • 执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户

  • 内存消耗:37.3 MB, 在所有 Java 提交中击败了86.05%的用户

方法二:StringBuilder

新建 StringBuilder ,使用字符串的 toCharArray() 方法,遍历每个字符,如果为空格则给 StringBuilder 加入特定字符,否则加入本字符

1
2
3
4
5
6
7
8
9
10
class Solution {
public String replaceSpace(String s) {
StringBuilder res = new StringBuilder();
for(Character c : s.toCharArray()) {
if(c == ' ') res.append("%20");
else res.append(c);
}
return res.toString();
}
}

复杂度分析:

  • 时间复杂度: O(N),遍历使用 O(N),每轮添加(修改)字符操作使用 O(1)
  • 空间复杂度 :O(N),新建的 StringBuilder 使用了线性大小的额外空间

执行结果:通过

  • 执行用时:1 ms, 在所有 Java 提交中击败了28.44%的用户

  • 内存消耗:37.8 MB, 在所有 Java 提交中击败了15.61%的用户