2.替换空格
题目描述
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
记录
1.第一反应,replace(),但是看别人讨论好像不推荐在面试的时候使用。
# -*- coding:utf-8 -*-
class Solution:
# s 源字符串
def replaceSpace(self, s):
# write code here
s = s.replace(' ','%20')
return s
2.定义一个新的空字符串,遍历给定的字符串,寻找空格并替换,赋值给新的字符串。
# -*- coding:utf-8 -*-
class Solution:
# s 源字符串
def replaceSpace(self, s):
# write code here
new = ''
for i in s:
if i == ' ':
new = new + '%20'
else:
new = new + i
return new
3.在原字符串的基础上替换。
# -*- coding:utf-8 -*-
class Solution:
# s 源字符串
def replaceSpace(self, s):
# write code here
n=len(s)
i = 0
for char in s:
if char== ' ':
s = s[:i] + "%20" + s[i+1:]
i += 2 #两位
i += 1
return s
4.先从前往后查找空格个数,获取替换后的总长度,一个空格需要增加两位。
然后利用两个指针,从后往前的空格替换。
# -*- coding:utf-8 -*-
class Solution:
# s 源字符串
def replaceSpace(self, s):
# write code here
s=list(s)
number = 0
for char in s:
if char == ' ':
number += 1
n1 = len(s)
n2 = n1 + number * 2
s.extend([' ' for i in range(number * 2)])
p1 = n1 - 1 #p1
p2 = n2 - 1 #p2
while p1 >= 0:
if s[p1] != ' ':
s[p2] = s[p1]
else:
s[p2] = '0'
p2 -= 1
s[p2] = '2'
p2 -= 1
s[p2] = '%'
p1 -= 1
p2 -= 1
return ''.join(s)