便利蜂算法面试题:字符串是否包含另一个字符串的位置

一 题目

整体来说,便利蜂的面试官还是挺nice的。

题目还是经典的算法问题,我尝试就是默认的indexof方法,

面试官说不行,我又试着用暴力循环来做。


    int strIndex(String haystack, String needle) {
        //conner case
        if (haystack.length() < needle.length()) {
            return -1;
        }
        if (haystack.length() == needle.length()) {
            if (haystack == needle) {
                return 0;
            }
            return -1;
        }

        //截取判断
        for (int i = 0; i < haystack.length()-needle.length()+1; ++i) {
            String tmp = haystack.substring(i,i+ needle.length());

            if (tmp.equals (needle)) {
                return i;
            }
        }
        return -1;
    }

    public static  void main(String[] agrs){

        StringIndex test = new StringIndex();
        int  res = test.strIndex("aaaabcd","abc");
        System.out.println(res);
    }

其实,回来查了下,这个题目就是经典的KMP算法,时间复杂度O(M+N)

  这里还没补充上这块算法。说下面试感受。

虽然面试官看你会不会KMP,但是你写出来这一步,已经不错了。

因为不是头条那种算法要求高的大厂,还是更看你的综合能力。不是说不做题,起码常见的你得会做一些。不然挂的概率很大。

      还有一点感触,贝壳4轮,水滴三轮,美团三轮,便利蜂两轮,便利蜂后续约面我已经自己有选择而没去。但是还是能感受出来,有的面试纯粹是为了招人填坑的,有的就是很聊得来。虽然说面试需要实力+机会。除非你很优秀,大厂反馈流程长也是现实,等一周挑选下候选人。还是希望能找到信任你的。

     不同于易车的常规提问,便利蜂的面试官更愿意跟你探讨下业务发展遇到的挑战与规划。没能去成也推荐一把。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值