题目描述
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
思路
熟悉Python的同学,会立即想到自带re
库中的re.sub
。当然在这个方法一行代码就搞定了。
import re
# s 源字符串
def replace_space_1(s):
return re.sub(" ", "%20", s)
运行效率是:
运行时间:40ms;占用内存:5636k
常规思路
直接遍历字符串,当遇到空格时,进行替换。这里需要预先定义一个存储对象进行存储。
def replace_space_2(s):
r = []
for token in s:
if token == " ":
r.append("%20")
else:
r.append(token)
return "".join(r)
运行效率是:
运行时间:27ms;占用内存:5624k
另外的方法
上个方法我们直接定义了一个空列表,其实对Python而言,字符串直接转列表是相当简洁的。
def replace_space_3(s):
s = list(s)
length = len(s)
for i in range(0, length):
if s[i] == " ":
s[i] = "%20"
return "".join(s)