网上海投的职位,话说他家效率挺高,第二天就收到了HR的电话邀请上礼拜和HR聊完简历后就收到了OA,还是地里那道 organizational structure,而且他家的OA没有hidden test case lol
做完后第二天早上又火速收到约下一步店面的邀请,这hr的效率给个好评
GHC联系的,大概两周前完成了OA,昨天刚刚电面,今天收到了GHC onsite的回复
OA跟电面都不是很难,都在HackerRank上,只能用 C#, Java, JavaScript, Objective-C, or Swift,题目都是以他们的游戏为背景,主要就是考察class implementation的感觉。
OA是让你完成一个员工名单,可以加入和删除员工,修改对应的上司和下属。
电面有用zoom视频,是个印度小姐姐,第一次碰见这么nice的面试官-0-,讲话很清楚,而且只要我一沉默就会问我思路然后给反馈并表示make sense,体验极佳,最后跟我说希望在GHC上见到我感觉自己大概电面就稳了。
题目跟地里搜到的一样,给6个rules然后事先定好的contest, player, team的class,给你一个Lineup, lineup里有一些player,判断这个lineup符不符合要求。
rules大概是:
-
contest 要求的位置和对应人数要符合
-
队里的player至少能参加两次game
-
最多三个player在同一team
-
人数不能超过contest人数要求
-
player薪水和不能超过上限
-
一个player只能用一次
就各种class 操作加上一些h ashmap搞定,难度不大主要是理解rule
Draftkings是个比较有钱的小公司,之前了解了背景是体育游戏博彩类的,融资了很多钱。约了hr电话,聊了不到20分钟?本来以为会问问经历,也没怎么问,基本是在问面试者对他们公司的印象,以及后续面试的流程之类的。挂了电话就发了OA过来,前一阵做了一下。题不是难题,只是非常麻烦。
大概内容就是让写个上司与下属的增删改查数据结构,新加入的员工不可以与之前的id重复,如果删掉员工,那么下属也会升级,最后打印注意下是两个space不是一个space。之前看漏了这句话debug好久没找到问题……
只需要补充完下面的class就可以,remove这个考虑情况要多一些,注意一下……考虑漏了上司下属这种关系就容易出错。
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
public static void main(String[] args) {
ConsoleProcessor processor = new ConsoleProcessor();
processor.processAllLines();
}
}
class ConsoleProcessor {
public OrgChart orgChart = new OrgChart();
public void processAllLines() {
Scanner in = new Scanner(System.in);
String line = in.nextLine();
Integer numLines = 0;
try {
numLines = Integer.valueOf(line.trim());
} catch (NumberFormatException ex) {
ex.printStackTrace();
}
for (int i = 0; i < numLines; i++) {
processLine(in.nextLine());
}
in.close();
}
protected void processLine(String line) {
String[] parsedCommand = line.split(",");
// ignore empty lines
if (parsedCommand.length == 0) {
return;
}
switch (parsedCommand[0]) {
case "add":
orgChart.add(parsedCommand[1], parsedCommand[2], parsedCommand[3]);
break;
case "print":
orgChart.print();
break;
case "remove":
orgChart.remove(parsedCommand[1]);
break;
case "move":
orgChart.move(parsedCommand[1], parsedCommand[2]);
break;
case "count":
System.out.println(orgChart.count(parsedCommand[1]));
break;
}
}
}
class OrgChart {
public void add(String id, String name, String managerId)
{
throw new UnsupportedOperationException();
}
public void print()
{
throw new UnsupportedOperationException();
}
public void remove(String employeeId)
{
throw new UnsupportedOperationException();
}
public void move(String employeeId, String newManagerId)
{
throw new UnsupportedOperationException();
}
public int count(String employeeId)
{
throw new UnsupportedOperationException();
}
}