05. 替换空格【字符串】

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

示例 1:

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

限制:

  • 0 <= s 的长度 <= 10000

2. 解法

2.1 Java

class Solution {
    public String replaceSpace(String s) {
        // 首先初始化一个长度为字符串长度三倍的字符数组,即结果数组
        char[] nums = new char[s.length() * 3];
        
        // 结果字符串的下标,初始化为 0
        int index = 0;

        // 遍历字符串中的每一个字符
        for (int i=0;i<s.length();i++) {
            // 字符不为空格,直接放入结果数组
            if(s.charAt(i) != ' ') {
                nums[index++] = s.charAt(i);
            // 碰到空格字符,把 %20 放进去
            } else {
                nums[index++] = '%';
                nums[index++] = '2';
                nums[index++] = '0';
            }
        }
        
        // 从 nums 中取出[0,index)即可
        String res = new String(nums, 0, index);
        return res;

    }
}

2.2 Kotlin

class Solution {
    fun replaceSpace(s: String): String {
        // 首先初始化一个长度为字符串长度三倍的字符数组,即结果数组
        val nums = CharArray(s.length * 3)

        // 结果字符串的下标,初始化为 0
        var index = 0

        // 遍历字符串中的每一个字符
        for (i in 0 until s.length) {
            // 字符不为空格,直接放入结果数组
            if (s[i] != ' ') {
                nums[index++] = s[i]
                // 碰到空格字符,把 %20 放进去
            } else {
                nums[index++] = '%'
                nums[index++] = '2'
                nums[index++] = '0'
            }
        }

        // 从 nums 中取出[0,index)即可
        return String(nums, 0, index)

    }
}

2.3 复杂度分析

  • 时间复杂度 O(n) :对字符串进行了遍历,耗费 O(n) 的时间。

  • 空间复杂度 O(n) :使用了一个字符串数组。

3. 参考

4. 笔记

最后更新于