剑指 Offer 05. 替换空格
剑指 Offer 05. 替换空格
请实现一个函数,把字符串 s
中的每个空格替换成"%20"。
示例 1:
输入:s = "We are happy."输出:"We%20are%20happy."
限制:
0 <= s 的长度 <= 10000
通过次数635,932提交次数843,438
第一种对法:
class Solution {
public:
string replaceSpace(string s) {
string ans;
for(auto a:s){
if(a==' '){
ans+="%20";
}else{
ans+=a;
}
}
return ans;
}
};
第二种对法:
class Solution {
public:
string replaceSpace(string s) {
int count = 0;
int sOldSize = s.size();
for(int i=0;i<s.size();i++){
if(s[i]==' '){
count++;
}
}
s.resize(s.size()+count*2);
int sNewSize = s.size();
for(int i = sNewSize - 1,j = sOldSize - 1;j < i;i--,j--){
if(s[j]!=' '){
s[i] = s[j];
}else{
s[i] = '0';
s[i-1]='2';
s[i-2]='%';
i-=2;
}
}
return s;
}
};