1. 程式人生 > >劍指offer 4. 替換空格

劍指offer 4. 替換空格

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

你可以假定輸入字串的長度最大是1000。
注意輸出字串的長度可能大於1000。

樣例

輸入:"We are happy."
輸出:"We%20are%20happy."

不開額外空間的做法會使字串長度總在變化,會比較麻煩。

class Solution {
public:
    string replaceSpaces(string &str) {
        string::size_type pos;
        string s1 = " ", s2 = "%20";
        pos=str.
find(s1,0); while(pos!=string::npos){ str.replace(pos,1,s2); pos = str.find(s1,pos+1); } return str; } };

更好的做法是新開一個用於記錄答案的字串,原字串的長度就不再會變化了

class Solution {
public:
    string replaceSpaces(string &str) {
        string ans;
        for(auto
x : str){ if(x == ' ') ans += "%20"; else ans += x; } return ans; } };