题目描述
编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。(注:用Java实现的话,请使用字符数组实现,以便直接在数组上操作。)
我的解题
class Solution {
public:
string replaceSpaces(string s, int length) {
int blank=0;
for(int i=0; i<length; i++)
{
if(s[i]==' ') blank++;
}
if(blank ==0) return s;
int q = length + 2*blank -1, p = length-1;
while(p!=q)
{
if(s[p]!=' ') s[q--] = s[p--];
else
{
s[q--]= '0';
s[q--]= '2';
s[q--]= '%';
p--;
}
}
return s.substr(0, length + 2*blank);
}
};
执行用时 :56 ms, 在所有 C++ 提交中击败了96.20%的用户
内存消耗 :24.6 MB, 在所有 C++ 提交中击败了100.00%的用户