题目描述
思路分析
创建新字符串,挨个向后添加,遇到空格替换即可,从前往后,从后往前都可以。
代码展示
class Solution {
public:
string replaceSpace(string s) {
if (s == "") {
return s;
}
int sum = 0;
for (int i = 0; i < s.size(); i++) {
if (s[i] == ' ') {
sum += 2;
}
}
sum = sum + s.size();
string str;
str.resize(sum, '+');
for (int i = s.size()-1, j = str.size()-1; i >=0; --i,--j ) {
if (s[i] == ' ') {
str[j] = '0';
--j;
str[j] = '2';
--j;
str[j] = '%';
}else{
str[j] = s[i];
}
}
return str;
}
};
结果分析
时间复杂度:O(n)遍历字符串
空间复杂度:O(n)额外创建字符数组。