两种简单的解决方案:

  • 循环,遇到空格就替换插入
  • 创建一个新的字符串,循环旧的,往新字符串中追加

c++

insert实现

class Solution {
public:
    string replaceSpace(string s) {
        // write code here
        for(int i=0; i<s.size(); i++){
            if(s[i] == ' '){
                s[i] = '%';
                s.insert(i+1, "20");
            }
        }
        return s;
    }
};

append和push_back实现

class Solution {
public:
    string replaceSpace(string s) {
        // write code here
        string res;
        for(const char c : s){
            if(c == ' '){
                res.append("%20");
            }else{
                res.push_back(c);
            }
        }
        return res;
    }
};