請實現乙個函式,把字串 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...