数据研发笔试Leetcode刷题笔记03:替换空格

1 题目描述

来源:力扣(LeetCode)

请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
在这里插入图片描述

2 解题思路

2.1 借助空字符串

初始化一个空的字符串 res 并遍历输入字符串的每个字符 i:

  • 如果 i 不是空格,直接加到 res 上;
  • 如果是空格,则将结果加 %201

2.2 借助空list

初始化一个 list ,记为 res ;遍历列表 s 中的每个字符 c :

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

将列表 res 合并为字符串并返回2

3 代码实现(Python3)

class Solution:
    def replaceSpace(self, s: str) -> str:
        #法1 
        res = ''
        for i in s:
            if i != ' ':
                res += i
            else:
                res += '%20'
        return res
                
        #法2
        res = []
        for c in s:
            if c == ' ': 
               res.append("%20")
            else: 
               res.append(c)
        return "".join(res)

4 复杂度分析

法1:借助空字符串

  • 时间复杂度:O(N)。N为数组的长度,遍历了一遍数组。
  • 空间复杂度:O(N)。使用了 res。

法2:借助list实现替换

  • 时间复杂度 O(N): 遍历使用 O(N),每轮添加(修改)字符操作使用 O(1);
  • 空间复杂度 O(N) :Python 新建的 list 使用了线性大小的额外空间。

深入了解复杂度:数据分析学习总结笔记11:空间复杂度和时间复杂度


  1. 解题思路_作者:z1m ↩︎

  2. 解题思路_作者:jyd ↩︎

发布了30 篇原创文章 · 获赞 0 · 访问量 529

猜你喜欢

转载自blog.csdn.net/weixin_41961559/article/details/105592664