欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

面试题 01.03. URL化

程序员文章站 2022-04-03 08:51:52
...

面试题 01.03. URL化 - 力扣(LeetCode)
面试题 01.03. URL化
开一个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));
    }
};
相关标签: 面试金典