【剑指offer第2版-第6题-JAVA】

字符串替换空格

面试官:请实现一个函数替换字符串中的每个空格替换成"%20"

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

:第一反应,肯定是使用String的replace方法。唰唰唰,上代码

    public static String replaceSpaceOld(String anyStr){
        //常规判空
        if(anyStr == null || anyStr.length() ==0){
            return null;
        }
        return anyStr.replace(" ","%20");
    }

面试官:你倒是会偷懒,请不借助replace方法实现一下。
:该偷懒就偷懒,不用replace的话,我试试将字符串转换为字符数组,遍历数组,再通过StringBuilder做拼接,这样那样一弄就OK了。上代码。

  public static String replaceSpaceNew(String anyStr){
        //常规判空
        if(anyStr ==null || anyStr.length()==0){
            return null;
        }
        //转换字符数组
        char[] chars = anyStr.toCharArray();
        //使用StringBuiler做拼接
        StringBuilder stringBuilder = new StringBuilder();
        for(char charstr : chars){
            //等于空格
            if(charstr == ' '){
                stringBuilder.append("%20");
            }else{
                stringBuilder.append(charstr);
            }
        }
        return stringBuilder.toString();
    }

总结:

  1. 笔试题有多种解法,时间复杂度,空间复杂度,要求不同解法不同。
  2. 写出满足时间空间复杂度要求>写出一种解法>写不出来有思路的>写不出来一片混乱的。
  3. 切记,面试时表达展现自己的机会,不是学校里面的考试,不及格就挂了,面试官也会依据你个人的表达能力,思维逻辑能力,工作年限等综合因素考虑。
    祝大家能有更好的成长。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值