请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
方案一:
思路: 先定义一个变量,来存储字符串中空格的数量,定义一个新数组new_array来存储(存储的是原字符串长度和2倍空格数量长度之和的空格),
然后遍历源字符串,最后进行赋值,如果源字符串当前originStr[i] == ' ',则分别对new_array[j]、new_array[j + 1]、new_array[j + 2]进行赋值,
若originStr[i]不为空,则将源字符串值赋给new_array[j]即可。
实现代码如下:
def replaceSpace(self, originStr):
s_len = len(originStr)
# print(s_len)
space_count = 0
for i in originStr:
if i == ' ':
space_count += 1
s_len += 2 * space_count
new_array = [' '] * s_len
print(new_array)
print(len(new_array))
j = 0
for i in range(len(originStr)):
if originStr[i] == ' ':
new_array[j] = '%'
new_array[j + 1] = '2'
new_array[j + 2] = '0'
j += 3
else:
new_array[j] = originStr[i]
j += 1
return ''.join(new_array)
print(replaceSpace(" ", 'We Are Happy!'))
方案二:
思路:使用系统函数直接进行替换即可。
直接替换
def replaceSpace(self,s):
return s.replace(" ","%20");
print(replaceSpace(" ", 'We Are Happy!'))
方案三:
思路:直接使用正则进行替换。
import re
def replaceSpace(self, s):
s = re.sub(r" ", "%20", s)
return s
print(replaceSpace(" ", 'We Are Happy!'))
以上即为python的不同解决方式,如有其他解决方式,可以留言一起学习哦。
剑指offer之Python替换空格
网友评论