第一种解法:流函数stringstream的运用
class Solution {
public:
string replaceSpaces(string S, int length) {
stringstream ss;
for (int i = 0; i < length; ++i)
{
if (S[i] != ' ')
{
ss << S[i];
}
else
{
ss << "%20";
}
}
return ss.str();
}
};
substr()方法用于字符串的截取
两个参数用法:
字符串.substr(参数1,参数2)
1
参数1(可以是0、正整数、负数)
参数1:
如果是0或正整数,则代表字符串截取的起始下标
如果是负数,则代表从倒数第几个字符开始截取
一般来说可以直接返回S了,但是题目要求字符串串尾不能有’ ',所以在返回前先substr一下
class Solution {
public:
string replaceSpaces(string s, int length) {
int cnt=0;
for(int i=0;i<length;i++){
if(s[i]==' ')cnt++;
}
int newlength=length+2*cnt;
int i=length-1,j=newlength-1;
for(;i>=0&&i!=j;i--){
if(s[i]==' '){
s[j--]='0';
s[j--]='2';
s[j--]='%';
}
else{
s[j--]=s[i];
}
}
s=s.substr(0,newlength);
return s;
}
};
此法乃是双指针。