0%

替换空格


题目:

解法:

1、调用代码库

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

2、字符数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution2 {
public String replaceSpace(String s) {
// 每次替换从 1 个字符变成 3 个字符,所以需要3倍的大小
char[] array = new char[s.length() * 3];
int size = 0;
for (int i = 0; i < s.length() ; i++) {
char a = s.charAt(i);
if (a == ' ') {
array[size++] = '%';
array[size++] = '2';
array[size++] = '0';
}else array[size++] = a;
}
String string = new String(array, 0, size);

return string;
}
}

复杂性分析

  • **时间复杂度:O(n)**。遍历字符串 s 一遍。
  • **空间复杂度:O(n)**。额外创建字符数组,长度为 s 的长度的 3 倍。