zoukankan      html  css  js  c++  java
  • 《剑指offer》面试题4 替换空格 Java版

    (给一个足够长的字符数组,其中有一段字符,将' '(空格)替换成’%’ ‘2’ ‘0’三个字符,原字符段由’’结尾)

    书中方法:这道题如果从头到尾扫描数组并替换,会涉及到数组的移动。如果不移动元素,从头到尾处理似乎没有什么思路。看到题目给的足够长的数组,我们要联想到从后往前处理的方式。我们计算出替换后数组的长度,可以简单的推断出原字符段处理到第一个字符的时候,新字符段也处理到第一个字符。

        public void replace(char[] c){
            if(c == null || c.length == 0)return;
    
            int originTail = -1;
            int newTail = -1;
    
            int i = 0;
            while(c[i] != ''){
                originTail++;
                if(c[i] == ' '){
                    newTail += 3;
                }else{
                    newTail ++;
                }
                i++;
            }
            c[newTail+1] = '';
            while(originTail >= 0){
                if(c[originTail] != ' '){
                    c[newTail] = c[originTail];
                    newTail--;
                }else{
                    c[newTail--] = '0';
                    c[newTail--] = '2';
                    c[newTail--] = '%';
                }
                originTail--;
            }
        }
    
    
  • 相关阅读:
    模板模式变形
    理解volatitle带来的可见性
    数据库隔离级别
    Spring对POST内容进行处理的坑
    动态加载JS和CSS
    MySQL性能优化总结
    JS自执行匿名函数
    CDATA为何物?
    如何编写高效的jQuery代码
    war和war exploded区别
  • 原文地址:https://www.cnblogs.com/czjk/p/11589621.html
Copyright © 2011-2022 走看看