牛客网网址:(https://www.nowcoder.com/ta/coding-interviews)
leetcode网址:(https://leetcode-cn.com/problemset/lcof/)
思路
1、暴力解题——replace直接替换
2、从前向后记录‘ ’数目,从前向后替换‘ ’。
class Solution:
# s 源字符串
def replaceSpace(self, s):
# write code here
#方法一:暴力解题:replace函数替换
#s= s.replace(' ','%20')
#return s
#方法二:
'''
ss = []
for i in range(len(s)):
if s[i] == ' ':
ss.append('%20')
else:
ss.append(s[i])
return ''.join(ss)
'''
#方法三:
#插入法
s_len = len(s)
count = 0
for i in s:
if i ==' ':
count+=1
res = [' ']*(s_len+2*count)
j = 0
for i in range(s_len):
if s[i] == ' ':
res[j] = '%'
res[j+1] = '2'
res[j+2] = '0'
j += 3
else:
res[j] = s[i]
j+=1
return ''.join(res)