请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如, 当字符串为 We Are Happy. 则经过替换之后的字符串为 We%20Are%20Happy。解题思路
时间: 2024-03-06 19:47:48 浏览: 61
可以先遍历一遍字符串,统计出字符串中空格的个数,然后根据空格的个数和字符串长度计算出替换后的字符串长度。接下来从字符串末尾开始遍历,遇到空格就将其替换成“%20”,直到所有空格都被替换完毕。
以下是一个示例代码实现:
```python
def replace_space(s):
if not s:
return ""
space_count = s.count(' ')
new_length = len(s) + 2 * space_count
new_str = list(s) + [''] * (2 * space_count)
index_old, index_new = len(s) - 1, new_length - 1
while index_old >= 0 and index_old < index_new:
if new_str[index_old] == ' ':
new_str[index_new-2:index_new+1] = ['%', '2', '0']
index_new -= 3
else:
new_str[index_new] = new_str[index_old]
index_new -= 1
index_old -= 1
return ''.join(new_str)
```
在这个函数中,我们首先统计字符串中空格的个数,然后计算出替换后的字符串长度,并用一个列表 `new_str` 来存储新的字符串。接下来,我们从字符串末尾开始遍历,并将字符倒序复制到新的字符串中去。如果遇到空格,就将其替换成“%20”。最后将列表转换成字符串返回即可。
调用该函数:`print(replace_space("We Are Happy"))`,输出结果为`We%20Are%20Happy`。
阅读全文