本文最后更新于:2020年11月12日 下午
剑指Offer05.替换空格
请实现一个函数,把字符串s中的每个空格替换为”%20“。
示例1:
输入: s = "We are happy."
输出: ”We%20are%happy."
限制:
0 <= s的长度 <= 10000
方法一:字符数组
由于每次替换从1个字符变成3个字符。使用字符数组可方便地进行替换。建立字符数组(长度为s的长度的3倍),这样可保证字符数组可以容纳所有替换后的字符。
- 获得s的长度length
- 创建字符数组array,其长度为length * 3
- 初始化size为0,size表示替换后的字符串的长度
- 从左到右遍历字符串s
- 获得s的当前字符c
- 如果字符c是空格,则令array[size] = ‘%’,array[size+1] = ‘2’,array[size+2] = ‘0’,并将size的值加3
- 如果字符c不是空格,则令array[size] = c,并将size的值加1
- 遍历结束之后,size的值等于替换后的字符串的长度,从array的前size个字符创建新字符串,并返回新字符串
class Solution:
def relaceSpace(self, s):
return s.replace('','%20')
复杂度分析
- 时间复杂度:O(n)。遍历字符串s一遍。
- 空间复杂度:O(n)。额外创建字符数组,长度为s的长度的3倍。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!