剑指 Offer 05. 替换空格

发布时间 2023-07-18 20:41:37作者: 孜孜不倦fly
class Solution {
public:
    string replaceSpace(string s) {
        int numspace=0;
        for(int i=0;i<s.size();i++){
            if(s[i]==' '){
                numspace++;
            }
        }
        int oldsize=s.size();
        s.resize(oldsize + 2*numspace);                   #1.重塑字符串大小用s.resize()  2.每个空格多出2个位置而不是3个
        int newsize=s.size();
        for(int i=oldsize-1,j=newsize-1;i<j;i--,j--){     #1.i和j分别从oldsize和newsize的末尾开始
            if(s[i]!=' ')s[j]=s[i];
            else{
                s[j]='0';
                s[j-1]='2';
                s[j-2]='%';
                j-=2;
            }
        }
        return s;
    }
};