刷題平臺:牛客網php
請實現一個函數,將一個字符串中的空格替換成「%20」。例如,當字符串爲We Are Happy.則通過替換以後的字符串爲We%20Are%20Happy。html
最簡單的方法就是從頭至尾遍歷,可是時間複雜度爲O(n^2)。編程
本文采用一種時間複雜度爲O(n)的方法。app
咱們能夠先遍歷一次字符串,這樣就能夠統計出字符串空格的總數,並能夠由此計算出替換以後的字符串的總長度。每替換一個空格,長度增長2,所以替換之後字符串的長度等於原來的長度加上2乘以空格數目。以"We are happy"爲例,"We are happy"這個字符串的長度爲14(包括結尾符號"\n"),裏面有兩個空格,所以替換以後字符串的長度是18。函數
咱們從字符串的尾部開始複製和替換。首先準備兩個指針,P1和P2,P1指向原始字符串的末尾,而P2指向替換以後的字符串的末尾。接下來咱們向前移動指針P1,逐個把它指向的字符複製到P2指向的位置,直到碰到第一個空格爲止。碰到第一個空格以後,把P1向前移動1格,在P2以前插入字符串"%20"。因爲"%20"的長度爲3,同時也要把P2向前移動3格。ui
移動示意圖:url
Python3:spa
# -*- coding:utf-8 -*- class Solution: # s 源字符串 def replaceSpace(self, s): # write code here return s.replace(' ', '%20')