面试题 01.03. URL化
程序员文章站
2022-04-03 08:51:52
...
面试题 01.03. URL化 - 力扣(LeetCode)
开一个res,一遍遍历一遍存储结果:
class Solution {
public:
string replaceSpaces(string S, int length) {
string res;
for(int i = 0; i < length; ++i){
if(isspace(S[i])) res += "%20";
else res += S[i];
}
return std::move(res);
}
};
如果要原地修改,就需要考虑到值的覆盖问题,可以使用逆序操作:
class Solution {
public:
string replaceSpaces(string S, int length) {
int idx = S.size()-1;
for(int i = length-1; i >= 0; --i){
if(isspace(S[i])){
S[idx--] = '0';
S[idx--] = '2';
S[idx--] = '%';
}else
S[idx--] = S[i];
}
return std::move(S.substr(idx+1));
}
};
上一篇: 面试题 01.05. 一次编辑
下一篇: 1.Java数组的定义与使用