劍指offer2 替換空格

2022-05-16 13:55:52 字數 808 閱讀 5829

思路:該問題我想到了兩種思路。

第一種比較簡單。

建立乙個新的陣列,對原字串從頭開始依次檢測,若不為空就直接複製到新陣列裡,若為空,就將%20填入新陣列,最後再整個複製到原陣列裡。

第二種方法。

1 遍歷原字串,找到所有的空格個數count(即一共有count個空格)。那麼經過替換最終的陣列長度newlength即為原字串的長度加上count*2.

2 對原字串從後往前依次遍歷,從str[length-1]開始遍歷,若是不為空就直接複製到str[newlength-1],若是為空就填入%20,注意,因為是從後往前填充,所以應該先填0,再填2,最後填%。然後接著遍歷原字串。(注意,因為是從後往前填充,所以替換後的字串是不會影響到原字串中還沒有檢測到的那些前面的字元的)。

**:

class

solution

int count=0

;

intnewlength;

for(int i=0;i)

}newlength = length+count*2

;

for(int i=length-1;i>=0;i--)

else

}/*//這個方法是構造乙個新的陣列,若原陣列不為空格,就直接複製過去,若為空格,就依次將%20

//複製過去,最後再複製到原陣列,但是有問題所以換一種方式

if(str==null||length==0)

char *str1;

int len = 0;

for(int i=0;i*/

}};

劍指offer(2) 替換空格

假設面試官讓我們在原來的字串上做替換。時間複雜度為o n 的解法。我們可以先遍歷一遍字串,這樣就能統計出字串中空格的總數,並可以由此計算出替換之後的字串的總長度。每替換乙個空格,長度增加2,因此替換以後字串的長度等於原來的長度加上2乘以空格數目。length為牛客系統規定字串輸出的最大長度,固定為乙...

劍指offer 2 替換空格

請實現乙個函式,將乙個字串中的空格替換成 20 usr bin env python coding utf 8 created by xuehz on 2017 8 7 class solution s 源字串 defreplacespace self,s write code here if ty...

劍指Offer 2 替換空格

題目描述 python 實現 coding utf 8 class solution s 源字串 def replacespace self,s write code here count 0 for val in s if val count 1 s new len s count 2 index...