题目
URL化。编写一种方法,将字符串中的空格全部替换为%20。
假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。
思路
使用额外的空间保存原始的字符ch和替换后的字符。
class Solution:
def replaceSpaces(self, S: str, length: int) -> str:
ans = []
replace = '%20'
for i in range(length):
if S[i] == ' ':
ans.append(replace)
else:
ans.append(S[i])
return ''.join(ch for ch in ans)
由于python字符串属于不可变类型,直接双指针也就行不通,这里给出思路代码,跑不通。
class Solution:
def replaceSpaces(self, S: str, length: int) -> str:
# 双指针,从后往前遍历
replace_char = '%20'
end = length - 1
cur = len(S) - 1
for ch in S[::-1]:
if ch == ' ':
S[end] = replace_char
else:
S[end] = ch
end -= 1
return S
更便捷高效的做法直接使用字符串API —— str.replcae()
class Solution:
def replaceSpaces(self, S: str, length: int) -> str:
return S[:length].replace(' ','%20')