剑指 Offer 05. 替换空格

Posted 炫云云

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指 Offer 05. 替换空格相关的知识,希望对你有一定的参考价值。

剑指 Offer 05. 替换空格

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

示例 1:

输入:s = "We are happy."
输出:"We%20are%20happy."
class Solution(object):
    def replaceSpace(self, s):
        """
        :type s: str
        :rtype: str
        """
        return s.replace(" ","%20")

遍历添加

算法流程:

  1. 初始化一个 list (Python),记为 res ;

  2. 遍历列表 s s s 中的每个字符 c c c

    c c c 为空格时:向 res 后添加字符串 “%20” ;

    c c c 不为空格时:向 res 后添加字符 c c c

  3. 将列表 res 转化为字符串并返回。

复杂度分析:

  • 时间复杂度 O ( N ) O(N) O(N) : 遍历使用 O ( N ) O(N) O(N) ,每轮添加(修改)字符操作使用 O ( 1 ) O(1) O(1)
  • 空间复杂度 O ( N ) O(N) O(N) : Python 新建的 list 和 Java 新建的 StringBuilder 都使用了线性大小的额外空间
class Solution(object):
    def replaceSpace(self, s):
        """
        :type s: str
        :rtype: str
        """
        res =[]
        for c in s:
            if c == ' ':
                res.append("%20")
            else:
                res.append(c)
        return "".join(res)

参考

Krahets - 力扣(LeetCode) (leetcode-cn.com)

以上是关于剑指 Offer 05. 替换空格的主要内容,如果未能解决你的问题,请参考以下文章

剑指OFFER----面试题05.替换空格

LeetCode(剑指 Offer)- 05. 替换空格

Leetcode剑指 Offer 05. 替换空格

剑指 Offer 05. 替换空格

剑指 Offer 05. 替换空格

剑指 Offer(第 2 版)刷题 | 05. 替换空格