字串 替換空格

2021-10-06 21:29:17 字數 1007 閱讀 5377

請實現乙個函式,把字串 s 中的每個空格替換成"%20"。

示例 1:

解法一:輔助陣列

先計算出字串中空格的個數,然後開闢足夠的空間將原來的字串拷貝進去,如果碰到空格就替換為「%20」。

如果面試官要求不能修改原字串的話,就可以利用輔助空間解決,若沒有這樣的要求,那麼輔助空間就會浪費乙個o(n)的空間。

char

*replaceblank

(char

*s)}

char

*str=

(char*)

malloc

(sizeof

(char)*

(len+1+

3*count));

//開闢動態記憶體

int j=0;

//存放str的下標

for(

int i=

0;i)else

//否則將%20按順序存放到str中

} str[j]

='\0'

;return str;

}

解法二:如過能修改原字串,我們可以對原字串進行空間擴充。

string replacespace

(string s)}if

(count ==0)

s.resize

(s.size()

+1+ count *2)

;int newsize = s.

size()

;int i = newsize -1;

int j = oldsize -1;

s[i--]=

'\0'

;while

(i >= j && i >=

0&& j >=0)

else

}return s;

}

字串替換空格

點 抽象問題簡化問題 題意 乙個字串,比如 aaa baea erwe dsa dsa f a 替換其中的空格字元為 20 劍指offer面試題4 思路 這個問題的點在於,如果正常從頭到尾替換的話,每乙個被替換空格,它後面的全部字串都需要做整體移動 所以要設法想出,怎麼能夠減少字串移動 非空格字元需...

替換空格(字串)

思路一 利用string類的replaceall方法 public class solution 思路二 將字串轉換為字元陣列 建立乙個新的stringbuffer的物件,遍歷字元陣列,將不為空格的字元直接存入 當遇到空格時,存入 20 public class solution return st...

字串 替換空格

方法 從後往前替換,先求出字串總長度 空格數 新字串長度,然後兩個指標分別指向原始字串末尾和新字串末尾,依次替換,遇到空格時則替換為 0 2 include includevoid replaceblank char string,int length int newlength originall...