剑指Offer总结——替换空格

这一次我们来做“替换空格”:

class Solution {
public:
    void replaceSpace(char *str,int length) {
        int len = 0, resLen = 0;
        while(str[len] != '\0') {
            if(str[len] == ' ') {
                resLen += 2;
            }
            ++len;
            ++resLen;
        }
        while(len>=0) {
            if(str[len]==' ') {
                str[resLen--] = '0';
                str[resLen--] = '2';
                str[resLen--] = '%';
                --len;
            }
            else {
                str[resLen--] = str[len--];
            }
        }
    }
};

思路很简单,这里简单说一下:

  1. 计算出最终答案的长度(就是resLen
  2. 从尾部向头部进行插入,当发现了空格的时候直接按照0、2、%来插入

猜你喜欢

转载自www.cnblogs.com/yejianying/p/jianzhioffer_replacing_spaces.html