题目
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 - 1cur = len(S) - 1for ch in S[::-1]:if ch == ' ':S[end] = replace_charelse:S[end] = chend -= 1return S
更便捷高效的做法直接使用字符串API —— str.replcae()
class Solution:def replaceSpaces(self, S: str, length: int) -> str:return S[:length].replace(' ','%20')
