分析:考虑采用双指针的形式进行遍历。每次双指针指向的区间都是一个单词,遇到空格则使用"%20"进行替换。为防止指针变量出错,所以每次取出一个单词则将原字符串截取掉最前面的那一部分,直到整个字符串被截取完毕;
class Solution {
public:
string replaceSpace(string s) {
if(s.length()==0)
return s;
char a=' ';
string s1="%20";
string sr;
while(s.length()!=0){
int i=0,j=0;
while(s[j]!=a&&j<s.length())
j++;
if(s[j]==a){
sr=sr+s.substr(i,j-i)+s1;
s=s.substr(j+1,s.length()-j+i-1);
}
else if(j==s.length()){
sr=sr+s.substr(i,j-i);
s="";
}
}
return sr;
}
};