两家非常难的OA---nextCapital和Quantcast

这两家都不是一投有OA;好不容易过了简历拿到OA,没想到真心难,所以都跪了
赶紧过来吐槽一下,也分享下经验

nextCapital
请看这里:http://blog.leanote.com/post/westcode/%5B%E9%9D%A2%E7%BB%8F%5D
模式大概一致,要求两个小时搞定
第一题,巨巨巨恶心的2-D array题;就是一个简单逻辑的2D array变形题,但列了5层按照顺序的要求!!!5个啊同志们~所以double for loop我写了5遍,而且每一层的要求还不是那么简单,都要那种上下左右都要变的那种
第二题,equally巨巨巨恶心的String变形题,也是简单逻辑,但是也貌似要求你变形5次!而且每一层变形也不是那么容易,各种花式+奇怪的要求。。具体我都忘了。。要求你对String的各种操作非常熟悉
第三题,就是上面链接的那个html
第四题,最坑爹;大概就是另外一个帖子里florist,种花然后花盆摆放的问题;被我压中了(还有一道面经题是类似trapping rain water那种题,所以我顺便把这类题复习了一下)。这道题临场做还是挺难的,但我之前就写好了,手头有code;
但没想到最坑爹的是,这个hackerrank OA居然不支持Java8!!!而我的priorityQueue用的是Java8的lambda;然后现场赶紧去写Java7的comparator;但因为code很复杂,一层套一层,comparator写的手忙脚乱就没时间了。。。

quantCast
就一道那个什么Json design题,要求implement add, get, delete…需要用Trie来做;我辛苦了两天写了300+行Java,最后只过了3个case。。。后面的case太大,超时

  1. 我觉得我的思路没错。比如{“location” : “Seattle”}, 那么就是 location —> Seattle, 上一个node指向下一个node;然后我用的是hashMap存比如{locationString : locationTrieNode};碰到同样的string就用过去的TrieNode即可
    莫非我的思路有错?这个题要处理的都是这些String,无法像dictionary那样就建立26个字母的array简单方便。。。所以我只会用Map来存储TrieNode和Name的对应信息,莫非有更好的办法我不会的?

  2. Json处理,也挺烦人的。或许Python处理这种更有效,Java的话一个是用json-simple,一个是Google的Gson;正好hackerrank俩都支持;Gson感觉挺花时间(我用System.time计算过)。。

  3. 最后是stdin的输入input,需要用Scanner来处理input;而不是直接给你String,然后跑一跑add(s), get(s)这么简单;而且貌似add, get,这样的method也是stdin的一部分;所以我还用了Method.invoke来实现

总之还是很难的。不过对我自己有很大锻炼,学到不少;估计Trie这一套就不会忘了,然后也算是做了一次design题(平常只会刷刷algorithm题);
感觉还是实力不够,看来coding skill还是要继续努力提高,学无止境~~~

quantcast的真心不需要用trie做。。仔细设计几个hashmap写个inverted index searching就好了(虽然本质上也是一个类似树的结构)。我全程用的hashmap然后test case全过了。

请问楼主是海投的吗还是内推?

都是海投就拿到了OA

gotcha!话说楼主申的是实习岗?

是的。我目前找的都是intern
而且大部分都是海投吧,目前只敢找小公司练练手

说一下QC的OA简单的暴力解法吧,写一个match函数,如果<k, v> pair里面的v不是json 就直接返回答案,如果是json就递归调用。。。

我就是这么写的啊。。。。可就是过不了。。。

不应该啊,可以过4个,剩下2个TLE

求楼主Nextcapital的第四题code~

求楼主Nextcapital的第三题html的code!