美文网首页
算法-5.替换空格

算法-5.替换空格

作者: zzq_nene | 来源:发表于2020-08-07 14:32 被阅读0次

请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
思路:首先找到字符串中所有的字符数,遍历其中有多少个空格,然后重新构建字符串的字符数量,即一个空格字符要替换成三个字符;然后使用新的字符数量创建一个新的字符数组,通过遍历旧的字符数组,判断如果为空格,则给新的字符数组中设置三个字符,如果不是空格字符,则设置原先字符串的字符。

    public static String replaceSpace(String str) {
        int spaceCount = 0;
        for (int i = 0; i < str.length(); i++) {
            if (str.charAt(i) == ' ') {
                spaceCount++;
            }
        }

        int newLength = str.length() + spaceCount * 2;
        char[] str2 = new char[newLength];
        for (int i = str.length() - 1; i > 0; i--) {
            if (str.charAt(i) == ' ') {
                str2[newLength - 1] = '0';
                str2[newLength - 2] = '2';
                str2[newLength - 3] = '%';
                newLength = newLength - 3;
            } else {
                str2[newLength - 1] = str.charAt(i);
                newLength = newLength - 1;
            }
        }
        return new String(str2);
    }
    public static String replaceSpace1(String str) {
        int spaceCount = 0;
        for (int i = 0; i < str.length(); i++) {
            if (str.charAt(i) == ' ') {
                spaceCount++;
            }
        }

        int newLength = str.length() + spaceCount * 2;
        int cur = 0;
        char[] str2 = new char[newLength];
        for (int i = 0; i < str.length(); i++) {
            if (cur < newLength) {
                if (str.charAt(i) == ' ') {
                    // cur=2时,经过替换,变成三个字符
                    str2[cur] = '%';
                    str2[cur + 1] = '2';
                    str2[cur + 2] = '0';
                    // 所以下一次的cur使用的时候就得是5
                    cur = cur + 3;
                } else {
                    // cur = 0时,取出原字符串中的第0个字符
                    str2[cur] = str.charAt(i);
                    cur = cur + 1;
                }
            }
        }
        return new String(str2);
    }

相关文章

  • 算法-5.替换空格

    请实现一个函数,把字符串 s 中的每个空格替换成"%20"。思路:首先找到字符串中所有的字符数,遍历其中有多少个空...

  • 5.替换空格

    题目:请实现一个函数,把字符串中的每个空格替换成“%20”。例如,输入“We are happy.”,则输出“We...

  • 5.替换空格

    思路:为了避免插入操作,可以考虑从后往前去替换空格。可以通过先计算空格数目确定新数组的长度,这样设置两个指针i,j...

  • 5.替换空格

    题目描述: 请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则...

  • 【算法】替换空格

    题目:请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例: 限制:0 <= s 的长度 <= 100...

  • 算法(2)替换空格

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

  • 算法刷题|替换空格

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

  • 《剑指offer》5.替换空格

    在python中,字符串是不可变类型。这意味着使用str.replace会生成一个新的字符串,即需要额外的O(n)...

  • 剑指Offer刷题

    刷一下算法题吧。https://foreti.me/2017/09/08/jianzhi-offer/ 替换空格 ...

  • js实现字符串算法

    字符串算法 替换空格 剑指offer:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为W...

网友评论

      本文标题:算法-5.替换空格

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