• 替换空格


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

    题解:1、直接使用replaceAll也能通过,不过这种方案不是这个题目的目的

        2、使用从后向前遍历,另个指针

    链接:https://www.nowcoder.com/questionTerminal/4060ac7e3e404ad1a894ef3e17650423
    来源:牛客网

    在当前字符串替换,怎么替换才更有效率(不考虑java里现有的replace方法)。
          从前往后替换,后面的字符要不断往后移动,要多次移动,所以效率低下
          从后往前,先计算需要多少空间,然后从后往前移动,则每个字符只为移动一次,这样效率更高一点。
    public String replaceSpace(StringBuffer str) {
            int spaceNum = 0;
            for (int i = 0; i < str.length(); i++) {
                if(str.charAt(i)==' ') {   //使用单引号
                    spaceNum++;
                }
            }
            int oldIndex = str.length()-1;
            int newLength = str.length()+2*spaceNum;
            int newIndex = newLength-1;
            str.setLength(newLength);
            for (; oldIndex>=0; oldIndex--,newLength--) {
                if(str.charAt(oldIndex)==' ') {
                    str.setCharAt(newIndex--, '0');
                    str.setCharAt(newIndex--, '2');
                    str.setCharAt(newIndex--, '%');
                }else {
                    str.setCharAt(newIndex, str.charAt(oldIndex));
                }
            }
            return str.toString();
        }

    类似的题目:

    合并两个有序的数组AB:A有足够大的空间,将B添加到A中,并且保证添加后的数组仍然有序

  • 相关阅读:
    js中有趣的闭包(closure)
    js常见函数汇总
    js时间处理
    一些JavaScript的技巧、秘诀和最佳实践
    js创建对象的6种方式
    js数组常用方法汇总
    左右点击分页方法
    dedecms 添加自定义图字段,调用时出错
    js判断PC端与移动端跳转
    php验证码
  • 原文地址:https://www.cnblogs.com/Michael2397/p/8682980.html
Copyright © 2020-2023  润新知