1. 程式人生 > 實用技巧 >劍指Offer 05. 替換空格

劍指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)