劍指Offer 05. 替換空格
阿新 • • 發佈:2020-11-21
題目描述:
請實現一個函式,把字串 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)