题干
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例 1:
输入:s = “We are happy.”
输出:“We%20are%20happy.”
限制:
0 <= s 的长度 <= 10000
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题解
这道题目的思路比较简单,只要检测出空格的位置,逐个替换就好了。但是自己的题解的执行时间太长,所以就到题解区逛了一下,发现了问题所在。
我的代码如下:
class Solution:
def replaceSpace(self, s: str) -> str:
lenth = len(s)
s1 = ''
for i in range(lenth):
if s[i] == ' ':
s1 = s1 + '%20'
else:
s1 = s1 + s[i]
return s1
Erik_Chen:str是不可变数据类型,也就是说每在一个str后面加了一个字符,都是新的str。这样导致空间开销太大。
所以这位大佬将str先转为list替换处理后再转为str,非常在理。
于是代码如下:
class Solution:
def replaceSpace(self, s: str) -> str:
s1 = []
for char in s:
if char == ' ':
s1.append('%20')
else:
s1.append(char)
return ''.join(s1)
执行时间减少了一般!yes!