Bootstrap

剑指 Offer 05. 替换空格

欢迎访问我的blog http://www.codinglemon.cn/

1. 题目描述

请实现一个函数,把字符串 s 中的每个空格替换成"%20"。

示例 1:

输入:s = “We are happy.”
输出:“We%20are%20happy.”
 
限制:
0 <= s 的长度 <= 10000

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题思路

这个题显然不要用String类的replaceAll方法,不然就失去了他的意义,而且从效率上来说也会慢一些,可以将String转为char类型数组,然后遍历数组,替换空格,另外记得拼接字符串时使用StringBuilder节约空间。

3.解题代码

class Solution {
    public String replaceSpace(String s) {
        char[] arr = s.toCharArray();
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < arr.length; i++) {
            if(arr[i] == ' '){
                sb.append("%20");
            }else {
                sb.append(arr[i]);
            }
        }
        return sb.toString();
    }
}

提交后时间复杂度与空间复杂度如下:

image.png

;