• 【剑指Offer编程题】替换空格


    问题:

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

    思路:

    1.计算出字符串长度(old_len + (space_len * 2))
    2.从新长度的最后一位往前放置字符串内容,保证元素一次到达自己的位置

    时间复杂度:

    O(n)

    
    /**
     * 请实现一个函数,将一个字符串中的每个空格替换成“c”。
     * 例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。
     */
    public class Main {
    
        public static void main(String[] args) {
            Main main = new Main();
            StringBuffer s =new StringBuffer("We Are Happy");
            System.out.println(main.replaceSpace(s));
    
        }
    
        /**
         * 思路:
         * 1.计算出字符串长度(old_len + (space_len * 2))
         * 2.从新长度的最后一位往前放置字符串内容,保证元素一次到达自己的位置
         *
         * 时间复杂度:O(n)
         * @param str
         * @return
         */
        public String replaceSpace(StringBuffer str) {
            //原本长度
            int old_len = str.length();
            //空格长度
            int space_len = 0;
            for (int i = 0; i < old_len; i++) {
                if (str.charAt(i) == ' ') {
                    space_len++;
                }
            }
            //设置新字符串长度
            int new_len = old_len + (space_len * 2);
            str.setLength(new_len);
    
            //从最后一位往前移动
            int index_old = old_len - 1;//原字符串索引
            int index_new = new_len - 1;//新字符串索引
            while (index_new >=0) {
                //若该位置为空格
                if (str.charAt(index_old) == ' ') {
                    str.setCharAt(index_new--, '0');
                    str.setCharAt(index_new--, '2');
                    str.setCharAt(index_new--, '%');
                }
                //否则该位置不为空格
                else {
                    str.setCharAt(index_new--, str.charAt(index_old));
                }
                index_old--;
            }
            return str.toString();
        }
    }
    
  • 相关阅读:
    javascript执行上下文
    javascript深浅拷贝
    javascript模块化
    javascript类型转换
    闭包
    通过插槽分发内容
    组件上使用v-model
    Vue $emit $event 传值(子to父)
    Vue Prop属性(父to子)
    Vue组件全局/局部注册
  • 原文地址:https://www.cnblogs.com/iriswang/p/11084623.html
Copyright © 2020-2023  润新知