劍指offer 4. 替換空格
阿新 • • 發佈:2019-01-01
請實現一個函式,把字串中的每個空格替換成"%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;
}
};