题目来自LeetCode,链接:面试题05. 替换空格。具体描述:请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例:
输入:s = "We are happy."
输出:"We%20are%20happy."
这就很简单了,直接遍历,遇到空格就替换就成了,时间复杂度为
O
(
n
)
O(n)
O(n)。为了速度,可以用字符数组进行处理,不过空间复杂度就是
O
(
n
)
O(n)
O(n)了,如果只用charAt()
的话就是
O
(
1
)
O(1)
O(1)了,当然会慢点。
JAVA版代码如下:
class Solution {
public String replaceSpace(String s) {
char[] chars = s.toCharArray();
char[] result = new char[chars.length * 3];
int idx = 0;
for (int i = 0; i < chars.length; ++i) {
if (chars[i] == ' ') {
result[idx++] = '%';
result[idx++] = '2';
result[idx++] = '0';
}
else {
result[idx++] = chars[i];
}
}
return new String(result, 0, idx);
}
}
提交结果如下:
Python版代码如下:
class Solution:
def replaceSpace(self, s: str) -> str:
result = ''
for ss in s:
if ss == ' ':
result += '%20'
else:
result += ss
return result
提交结果如下: