劍指offer 替換空格

2022-11-24 15:21:36 字數 753 閱讀 4609

思路:恩。人生苦短,我用python。

python實現:

1

#-*- coding:utf-8 -*-

2class

solution:3#

s 源字串

4def

replacespace(self, s):5#

write code here

6return

"%20

".join(s.split("

"))

c++實現:

如果從頭開始掃描,那麼每遇到一個空格,都要將後面的字元往後移兩位,最終時間複雜度o(n2),因此可以從串尾開始掃描。

1

class

solution

11 i++;12}

13//

snewlength表示新串的長度 - 1

14int snewlength = soldlength + 2 *snum;

15if (snewlength >=length)

16return;17

while (soldlength >= 0 && snewlength >soldlength) else

25 soldlength--;26}

27 }

合併兩個排序的陣列(或者字串),如果從前往後複製每個數字需要重複移動數字(字元)多次,我們可以考慮從後往前複製。

劍指Offer 替換空格

乍一看不就一個replace解決問題,的確這樣是能ac的 如下面這個c 版的,一行就能解決 public string replacespace string str 如果不用自帶的replace偷懶,有兩種思路 建立新的字串 原地replace 這種方法比較簡單,空間換時間,時間複雜度 o n 空...

劍指offer 替換空格

時間限制 1秒 空間限制 32768k 熱度指數 27315 我的思路 將stringbuffer型別轉換為string,然後使用replace方法 膚淺了,沒有理解到題目要考察的知識點 1 class solution 9return string 1011 12 深入 replace方法的實現 ...

劍指offer 替換空格

用 20 三個字元來代替 一個字元,字串會變長,如果在原來的字串上直接操作會導致後面的字元被覆蓋,所以我們需要擴充套件空間 如果建立新的字串並在新的字串上替換,則我們自己可以分配足夠多的空間。這裡我們採用的是在原來的字串上替換,要將空格後面的字串後移。常規思路是從前向後遍歷,碰到空格就將其後面的字串...