《数据科学面试40+真题讲解》,K神本年度最后一次开课


一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投,内推你去多家公司面试
Airbnb 数据科学职位
in analytics and inference
天天打游戏、照样领工资,
你要不要来?
把贵司招聘信息放这里
查看: 3337|回复: 7
收起左侧

Ebay 电面

[复制链接] |试试Instant~ |关注本帖
averillzheng 发表于 2015-8-19 05:31:22 | 显示全部楼层 |阅读模式

2015(7-9月) 码农类 硕士 全职@eBay - 内推 - 技术电面 |Fail在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?Sign Up 注册获取更多干货

x
前一段时间,朋友内推,电面了Ebay Traffic team(bellevue, WA) 的一个社招职位.面完第一轮就挂了。面试就问了个算法题目:在一个词典中,能由元素周期表中元素(一个字母或两个字)组成的最长的单词。
当时紧张,写了个backtracking,还有个bug,所以就必须挂了。面完后,重新写了,代码在下面,如果大家有更好的方法,请讨论。
. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
    /**. 1point3acres.com/bbs
     * sort all the words in the dictionary,
     * and then validate from the longest word.
     * once find one,
     * @param dict
     * @param elements. from: 1point3acres.com/bbs
     * @return
     */. 鍥磋鎴戜滑@1point 3 acres
    private String findLongest(Set<String> dict, Set<String> elements) {.鏈枃鍘熷垱鑷1point3acres璁哄潧
        PriorityQueue<String> queue = new PriorityQueue<String>(new Comparator<String>() {.鐣欏璁哄潧-涓浜-涓夊垎鍦
            @Override
            public int compare(String o1, String o2) {
                return o2.length() - o1.length();
-google 1point3acres            }
        });
        while (!queue.isEmpty()) {
            String tmp = queue.poll();
            if (isFormed(0, tmp, elements)) {
                return tmp;. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
            }
        }-google 1point3acres
        return null;. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
    }
.鐣欏璁哄潧-涓浜-涓夊垎鍦
    private boolean isFormed(int i, String word, Set<String> elements) {
        if (i == word.length()) {
. Waral 鍗氬鏈夋洿澶氭枃绔,            return true;
        }
        if (elements.contains(word.substring(i, i + 1)))-google 1point3acres
            if (isFormed(i + 1, word, elements))
                return true;
        if (i < word.length() - 1) {
            if (elements.contains(word.substring(i, i + 2)))
                if (isFormed(i + 2, word, elements))
                    return true;. visit 1point3acres.com for more.
        }
        return false;. visit 1point3acres.com for more.
    }


由于是朋友内推的,面试流程很快,自己投的那些职位,基本上没啥反应,到时有个朋友已经面了ebay好几个职位了。
另外,Ebay是没有冻结时间的,面挂可以继续投。

评分

1

查看全部评分

psychiatrichwj 发表于 2015-8-19 22:29:50 | 显示全部楼层
LZ 求内推啊 我都找不到人推eBay
回复 支持 反对

使用道具 举报

xytan123 发表于 2015-8-19 23:44:42 | 显示全部楼层
意思是把dict里面的词都写到priority queue里面?
回复 支持 反对

使用道具 举报

flyaway25 发表于 2015-8-20 00:04:43 | 显示全部楼层
我在google面过这个类似的,当时的思路也是把字典里面的词按照长度排个序,从最长的单词开始依次往下check能否用规定的元素组成。后来我问他还有啥解法吗,他说差不多就是这个。

补充内容 (2015-8-20 00:08):
BTW,你的priority queue写的有bug,用comparator的constructor还要加上pq的size参数,可以直接用collections来sort
回复 支持 反对

使用道具 举报

 楼主| averillzheng 发表于 2015-8-20 03:32:38 | 显示全部楼层
flyaway25 发表于 2015-8-20 00:04.1point3acres缃
我在google面过这个类似的,当时的思路也是把字典里面的词按照长度排个序,从最长的单词开始依次往下check ...

是这样的。 用comparator的constructor可以不指定size。. Waral 鍗氬鏈夋洿澶氭枃绔,
直接用Collections.sort确实就可以了。
回复 支持 反对

使用道具 举报

flyaway25 发表于 2015-8-20 04:05:47 | 显示全部楼层
averillzheng 发表于 2015-8-20 03:32
是这样的。 用comparator的constructor可以不指定size。
直接用Collections.sort确实就可以了。

你用的哪个版本的java,至少我的1.6版本java在这么写priorityqueue的时候如果不加第一个size的参数是直接报错的。

补充内容 (2015-8-20 04:08):
Sorry,刚查了下,1.8版本的java的确可以不加size了。
回复 支持 反对

使用道具 举报

ChrisGates23 发表于 2015-8-20 20:27:37 | 显示全部楼层
flyaway25 发表于 2015-8-20 00:04
我在google面过这个类似的,当时的思路也是把字典里面的词按照长度排个序,从最长的单词开始依次往下check ...

请教这样的时间复杂度是O(nk)吗,n单词个数,k单词平均长度。
回复 支持 反对

使用道具 举报

 楼主| averillzheng 发表于 2015-8-21 01:00:57 | 显示全部楼层
flyaway25 发表于 2015-8-20 04:05
你用的哪个版本的java,至少我的1.6版本java在这么写priorityqueue的时候如果不加第一个size的参数是直接 ...

是的,我现在用1.8.
回复 支持 反对

使用道具 举报

本版积分规则

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2017-11-19 03:28

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表