C++递归 字符拼接将字符串中的空格替换成 %20 ,考虑到移动元素消耗的时间会比较多,于是想到了递归拼接,核心思路是遍历string,碰到空格就进入下一层递归。string内每个元素被访问一次,所以时间复杂度为O(n),空间复杂度上因为运用了递归,所以主要是一个递归栈的空间占用,取决于空格的数量,最坏情况下可以达到O(n)级。本解法并不高效,但是很懒。

string replaceSpace(string s) {
        // write code here
        for(int i=0;i<s.length();i++){
            if(s[i]==32)
                return s.substr(0,i)+"%20"+replaceSpace(s.substr(i+1));
        }
        return s;
    }