剑指Offer 05. 替换空格


一、题目

请实现一个函数,把字符串 s 中的每个空格替换成”%20”。

示例1:

输入:s = "We are happy."
输出:"We%20are%20happy."

限制:

0 <= s的长度 <= 10000

二、思路

1. 正则

使用正则的sub方法进行匹配替换。

2. replace函数

使用python字符串的内置函数replace进行替换

3. 字符数组

创建一个数组ls,然后对字符串s进行遍历。

  • i == ' 'ls.append('%20')
  • elsels.append(i)

三、代码

1. 正则

import re
class Solution:
    def replaceSpace(self, s: str) -> str:
        return re.sub(r' ', '%20', s)

2. replace

class Solution:
    def replaceSpace(self, s: str) -> str:
        return s.replace(' ', '%20')

3. 字符数组

class Solution:
    def replaceSpace(self, s: str) -> str:
        ls = []
        for i in s:
            if i == ' ':
                ls.append('%20')
            else:
                ls.append(i)
        return ''.join(ls)

四、表现

method 运行时间 表现 内存消耗 表现
1. 正则 36ms 84.51% 13.5MB 5.38%
2. replace 44ms 37.12% 13.3MB 59.67%
3. 字符数组 32ms 94.89% 13.5MB 10.29%

文章作者: Arvin He
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Arvin He !
评论
 上一篇
剑指Offer 06. 从头到尾打印链表 剑指Offer 06. 从头到尾打印链表
输入一个链表的头结点,从尾到头反过来返回每个节点的值(用数组返回)。
2020-10-26
下一篇 
剑指Offer 04. 二维数组中的查找 剑指Offer 04. 二维数组中的查找
在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
2020-10-25
  目录