美文网首页
剑指offer--替换空格

剑指offer--替换空格

作者: guanchun2002 | 来源:发表于2021-01-05 16:29 被阅读0次

    题目

    请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

    代码

    c++

    class Solution {

    public:

    void replaceSpace(char *str,int length) {

        if (str == nullptr || length <= 0)

            return;

        int cnt = 0;  // 记录空格的数量

        for (int i=0; i != length; ++i) {

            if (str[i] == ' ')

                ++cnt;

        }

        if (!cnt)

            return; // 没有空格

        int new_length = length+cnt*2;//记录替换后的长度

        for (int i=length; i >= 0; --i) {

            if (str[i] == ' ') { //空格,替换

                str[new_length--] = '0';

                str[new_length--] = '2';

                str[new_length--] = '%';

            }

            else {

                str[new_length--] = str[i]; //非空格,移动

            }

        }

    }

    };

    相关文章

      网友评论

          本文标题:剑指offer--替换空格

          本文链接:https://www.haomeiwen.com/subject/cdrwoktx.html