网址
题目
请实现一个函数,把字符串 s
中的每个空格替换成"%20"。
解法
c++中字符串通过字符数组实现,最后一位位'/0',可以直接改变每一位。
通过resize函数改变'/0'的位置从而改变字符串长度,然后通过双指针倒序遍历原地修改。
class Solution {
public:
string replaceSpace(string s) {
int len=s.size();
int i=-1,count=0;
while(s[++i]){
if(s[i]==' ')
count++;
}
s.resize(len+2*count);
int s1=len-1,s2=len+2*count-1;
for(;s1!=s2;s1--,s2--){
if(s[s1]==' '){
s[s2--]='0';
s[s2--]='2';
s[s2]='%';
}
else
s[s2]=s[s1];
}
return s;
}
};