剑指Offer 05. 替换空格

题目描述:

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

示例1:

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

方法:遍历添加      

      在 Python 语言中,字符串被设计成「不可变」的类型,即无法直接修改字符串的某一位字符,需要新建一个字符串实现。

算法流程:

      1. 初始化一个 list 记为 res ;
      2. 遍历列表 s 中的每个字符 c :
            当 c 为空格时:向 res 后添加字符串 "%20" ;
            当 c 不为空格时:向 res 后添加字符 c ;
      3. 将列表 res 转化为字符串并返回。

复杂度分析:时间复杂度 O(n):遍历使用 O(n),每轮添加(修改)字符操作使用 O(1);

                  空间复杂度 O(n):Python 新建的 list 使用了线性大小的额外空间。

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

 

posted @ 2020-11-21 20:46  Chenjin2018  阅读(77)  评论(0编辑  收藏  举报