Ebay 电面

原帖地址:一亩三分地

前一段时间,朋友内推,电面了Ebay Traffic team(bellevue, WA) 的一个社招职位.面完第一轮就挂了。面试就问了个算法题目:在一个词典中,能由元素周期表中元素(一个字母或两个字)组成的最长的单词。
当时紧张,写了个backtracking,还有个bug,所以就必须挂了。面完后,重新写了,代码在下面,如果大家有更好的方法,请讨论。

/**
* sort all the words in the dictionary,
* and then validate from the longest word.
* once find one,
* @param dict
* @param elements
* @return
*/
private String findLongest(Set dict, Set elements) {
PriorityQueue queue = new PriorityQueue(new Comparator() {
@Override
public int compare(String o1, String o2) {
return o2.length() – o1.length();
}
});
while (!queue.isEmpty()) {
String tmp = queue.poll();
if (isFormed(0, tmp, elements)) {
return tmp;
}
}
return null;
}

private boolean isFormed(int i, String word, Set elements) {
if (i == word.length()) {
return true;
}
if (elements.contains(word.substring(i, i + 1)))
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; } return false; } 由于是朋友内推的,面试流程很快,自己投的那些职位,基本上没啥反应,到时有个朋友已经面了ebay好几个职位了。 .鏈枃鍘熷垱鑷point3acres璁哄潧另外,Ebay是没有冻结时间的,面挂可以继续投。