剑指 Offer 05. 替换空格
一、题目展示
- 
请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
 - 
示例 1:
- 输入:s = "We are happy."
 - 输出:"We%20are%20happy."
 
 
二、题意理解及思路
- 
1、 首先在PYTHON中关于数据类型的规定是字符串不可变,所以我们是不可能在原字符串的基础上直接进行修改。
 - 
2、既然不可能在原数据上修改,那就考虑处理过程中进行深拷贝或者是,将其转化为其他可变数据类型进行修改再转回字符串。
 - 
3、难点:数据类型字符串不可变、遍历
 
三、代码及步骤解读
- 方法一
 
class Solution:
    def replaceSpace(self, s):
        res = [] #初始化一个 list
        for c in s: #遍历字符串
            if c == ' ': res.append("%20")
            else: res.append(c)
        return "".join(res) #join()方法用于将序列中的元素以指定的字符连接生成一个新的字符串。
- 方法二
 
class Solution:
    # s 源字符串
    def replaceSpace(self, s):
        return s.replace(" ", "%20")
四、复杂度分析
- 
时间复杂度 O(N): 遍历使用 O(N),每轮添加(修改)字符操作使用O(1);
 - 
空间复杂度 O(N): Python 新建的list使用了线性大小的额外空间。
 

                
            
        
浙公网安备 33010602011771号