题目描述
请实现一个函数,把字符串 s
中的每个空格替换成”%20”。
示例 1:
1 | 输入:s = "We are happy." |
限制:0 <= s 的长度 <= 10000
题目链接
题目解答
解法一
使用String内置replaceAll()
方法,只需一行代码就能完成题目要求,但实际测试时间性能表现一般。
时间复杂度:$O(n)$ 空间复杂度:$O(n)$
1 | class Solution { |
执行用时:3 ms, 在所有 Java 提交中击败了15.63%的用户
内存消耗:36.3 MB, 在所有 Java 提交中击败了46.79%的用户
解法二
使用String内置toCharArray()
方法,我们可以得到一个字符数组,遍历这个数组,如果元素是空格就把需要替换的字符串添加到StringBuilder
中,否则直接添加当前字符。
时间复杂度:$O(n)$ 空间复杂度:$O(n)$
1 | class Solution { |
执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户
内存消耗:36.1 MB, 在所有 Java 提交中击败了90.12%的用户
解法三
除了上述两种处理方式,我们也可以通过初始化字符数组来构造字符串,需要注意的是,如果遇到空格,需要同时往字符数组中添加替换串拆解之后的3个字符。
时间复杂度:$O(n)$ 空间复杂度:$O(n)$
1 | class Solution { |
执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户
内存消耗:36.2 MB, 在所有 Java 提交中击败了77.09%的用户