狗家 11/05 全职 new grad OA

还是那两道题

  1. check email
    hint: string.split(’@’), string.replace()
  2. 采水果
    第一次我用了 two pointer, 超时了。。。。,大家有没有更好的办法,share下。

采水果应该是指蠡扣久零寺?直接看Solution就行了,用一个counter记已采集水果的种类,two pointer没错。
具体代码:

public int totalFruit(int[] tree) {
        if (tree == null || tree.length == 0) {
            return 0;
        }
        int counter = 0, res = 0;
        int[] fruits = new int[tree.length];
        int start = 0, end = 0;
        while (end < tree.length) {
            if (fruits[tree[end]]++ == 0) {
                counter++;
            }
            while (counter > 2) {
                if (fruits[tree[start++]]-- == 1) {
                    counter--;
                }
            }
            res = Math.max(res, end - start + 1);
            end++;
        }
        return res;
    }

麻烦问一下第一个check email具体是什么?是蠡扣久而久吗?非常感谢你的分享

那可能是Python比较慢吧,我的解法是

start=0block_start=0
block_end=0
result=0
for idx,num in enumerate(A):
    print(idx,num)
    if num==A[block_start]:
        continue
    elif num==A[block_end]:
        block_end=block_start
        block_start=idx
    else:
        result=max(result,idx-start)
        start=block_start
        block_end=block_start
        block_start=idx
max(result,len(A)-start)

一模一样
https://www.1point3acres.com/bbs/thread-438475-1-1.html