请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例 1:
输入:s = "We are happy."
输出:"We%20are%20happy."
限制:
0 <= s 的长度 <= 10000
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路1:python中的replace()函数
class Solution:
def replaceSpace(self, s: str) -> str:
s = s.replace(' ', '%20')
return s
思路2:手动实现
class Solution:
def replaceSpace(self, s: str) -> str:
ans = []
for i in range(len(s)):
if s[i] == ' ':
ans.append('%20')
else:
ans.append(s[i])
return ''.join(ans)
思路3:双指针移动+计数
就是根据题目一个空格需要换成%20, 则每个空格需要加入2个空间,所以先遍历计算机需要增加多少空间,然后就知道需要多大的字符数组。在C语言中,可能只能用字符数组做。
class Solution:
def replaceSpace(self, s: str) -> str:
ans = [''] * len(s) # [] * len(s)得到的还是[]
cnt = 0
for i in range(len(s)):
if s[i] == ' ':
cnt += 2 # 每个空格需要多两个位子存储
ans += ([''] * cnt)
j = 0
for i in range(len(s)):
if s[i] == ' ':
ans[j] = '%'
j += 1
ans[j] = '2'
j += 1
ans[j] = '0'
j += 1
else:
ans[j] = s[i]
j += 1
return ''.join(ans)