剑指 Offer 05. 替换空格【简单】
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例 1:
输入:s = “We are happy.”
输出:“We%20are%20happy.”
限制:
0 <= s 的长度 <= 10000
方法一:字符数组
1.1 思路分析
首先,Java中的字符串定义后是不能被修改的,所以不能直接进行,需要借助字符数组。
‘%20’应该是3个字符,而不是1个字符,所以当替换时需要将后面的字符移动位置。
最后再将字符数组转为字符串返回。
1.2 代码实现
class Solution {
public String replaceSpace(String s) {
int len = s.length();
int index = 0;
char[] chs = new char[len*3];
for (int i=0; i<len; i++){
char ch = s.charAt(i);
if (ch == ' '){
chs[index++] = '%';
chs[index++] = '2';
chs[index++] = '0';
}else {
chs[index++] = ch;
}
}
return new String(chs, 0, index);
}
}
1.3 测试结果
1.4 复杂度
- 时间复杂度:O(n)
- 空间复杂度:O(n)