26、剑指 Offer 05. 替换空格
目录
一、题目
剑指 Offer 05. 替换空格 难度简单
请实现一个函数,把字符串 s
中的每个空格替换成"%20"。
示例 1:
输入:s = "We are happy."
输出:"We%20are%20happy."
限制:
0 <= s 的长度 <= 10000
二、解法
2.1、遍历添加
核心思路
在 Python 和 Java 等语言中,字符串都被设计成「不可变」的类型,即无法直接修改字符串的某一位字符,需要新建一个字符串实现。
复杂度分析
时间复杂度:O(N)。遍历使用 O(N),每轮添加(修改)字符操作使用 O(1);
空间复杂度:O(N)。新建的 StringBuilder 使用了线性大小的额外空间。
Code
class Solution {
public String replaceSpace(String s) {
StringBuilder result = new StringBuilder();
for (Character c : s.toCharArray()) {
if (c == ' ') {
result.append("%20");
} else {
result.append(c);
}
}
return result.toString();
}
}
2.2、String 内置 replace 函数
核心思路
不说了,懂得都懂。
复杂度分析
时间复杂度:
空间复杂度:
Code
class Solution {
public String replaceSpace(String s) {
return s.replace(" ", "%20");
}
}