美文网首页
5.代替空格

5.代替空格

作者: Hwyoung | 来源:发表于2018-08-28 10:59 被阅读3次

题目

将一个字符串中的空格替换成 "%20"。

Input:
"We Are Happy"

Output:
"We%20Are%20Happy"

思路

1.用stringbuilder的append方法 O(n)+O(n)
2.在字符串尾部填充任意字符,使得字符串的长度等于替换之后的长度。因为一个空格要替换成三个字符(%20),因此当遍历到一个空格时,需要在尾部填充两个任意字符。
时间O(n)+O(1)


class ReplaceSpace {

    // O(n) O(n)
    public String replaceSpace(StringBuffer str) {
        if (str == null || str.length() < 1) {
            return null;
        }
        StringBuffer newstr = new StringBuffer();
        for (int i = 0; i < str.length(); i++) {
            if (str.charAt(i) == ' ') {
                newstr.append("%20");
            } else {
                newstr.append(str.charAt(i));
            }
        }
        return newstr.toString();
    }

    // O(N)+O(1)
    public String replaceSpace2(StringBuffer str) {
        // 遍历,遇到空格扩2
        int old = str.length();
        for (int i = 0; i < old; i++) {
            if (str.charAt(i) == ' ') {
                str.append("  ");
            }
        }
        int p1 = old - 1;
        int p2 = str.length() - 1;
        while (p1 >= 0 && p1 < p2) {
            char c = str.charAt(p1--);
            if (c == ' ') {
                str.setCharAt(p2--, '0');
                str.setCharAt(p2--, '2');
                str.setCharAt(p2--, '%');
            } else {
                str.setCharAt(p2--, c);
            }
        }
        return str.toString();

    }
}

相关文章

  • 5.代替空格

    题目 将一个字符串中的空格替换成 "%20"。 思路 1.用stringbuilder的append方法 ...

  • SQL绕过学习笔记

    1.绕过空格(注释符/* */,%a0):两个空格代替一个空格,用Tab代替空格,%a0=空格: %20 %09 ...

  • 在vim中设置tab缩进4个字符

    相关配置:Tab用指定空格的个数代替 启用:set tabstop=# 指定#个空格代替Tab 简写:...

  • 未整理

    {' '} - 这里: {' '} 是空格的意思。 标签中不能直接显示空格,需要用 {' '} 来代替空格

  • 5.替换空格

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

  • 5.替换空格

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

  • 5.替换空格

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

  • Java中保留String空格

    Java中保留String空格 有空格的地方用 \u0020 代替 参考链接 How to keep the sp...

  • ReactiveCocoa 常见使用

    1.代替 tapGesture 2.代替addTarget事件 3 .代替观察者KVO 4.监听 通知 5.代替代理

  • 算法-5.替换空格

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

网友评论

      本文标题:5.代替空格

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