推荐:数据科学课程和书籍清单以及培训讲座


一亩三分地论坛

 找回密码
 获取更多干活,快来注册

一亩三分地官方iOS手机应用下载
查看: 4398|回复: 16
收起左侧

Palantir二面

[复制链接] |试试Instant~ |关注本帖
hj867955629 发表于 2015-10-30 05:51:13 | 显示全部楼层 |阅读模式

2015(10-12月) 码农类 硕士 全职@Palantir - 内推 - 技术电面 |Otherfresh grad应届毕业生

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

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

x
理解题意花了一些时间。。。。求过


// This is the text editor interface.
// Anything you type or change here will be seen by the other person in real time.


ONE
+ONE. 1point 3acres 璁哄潧
----
TWO

231. from: 1point3acres.com/bbs
+231
----. 1point 3acres 璁哄潧
462
. from: 1point3acres.com/bbs
FOUR
+FOUR
-----. 1point 3acres 璁哄潧
EIGHT

5239
+5239. 鍥磋鎴戜滑@1point 3 acres
-----
10478

FOUR
+ONE
----.1point3acres缃
FIVE
. 鍥磋鎴戜滑@1point 3 acres
6130
+149
----
6279
. more info on 1point3acres.com
interface Expression {
    Set<Character> getChars();
    boolean eval(Map<Character, Integer> proposedSolution);
}


//input is "ONE" "ONE" "TWO"
-google 1point3acres// {O: 2, N: 3, E: 1, T: 4, W: 6} // proposedSolution for eval
class EvelExpression implements Expression {
. visit 1point3acres.com for more.    String input1, input2, result;
    Set<Character> chars;
    public EvelExpression(String s1, String s2, String result) {
        input1 = s1;. Waral 鍗氬鏈夋洿澶氭枃绔,
        input2 = s2;. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
        this.result = result;
        chars = new HashSet<>();
    }

    private void addCharacter(Set<Character> chars, String s) {
        for (int pos = 0; pos < s.length(); pos++) {. Waral 鍗氬鏈夋洿澶氭枃绔,
            chars.add(s.charAt(pos));
        }
    }

    Set<Character> getChars() {
        addCharacter(chars, s1);
        addCharacter(chars, s2);
        addCharacter(chars, result);
        return chars;
    }.鏈枃鍘熷垱鑷1point3acres璁哄潧

    private int getNum(String s, Map<Character, Integer> proposedSolution) {. visit 1point3acres.com for more.
        int res = 0;
        for (int pos = 0; pos < s.length()(); pos++) {
            res = res * 10 + proposedSolution.get(s.charAt(pos));
        }
        return res;
    }

    boolean eval(Map<Character, Integer> proposedSolution) {
        int num1 = getNum(input1, proposedSolution), num2 = getNum(input2, proposedSolution);.鏈枃鍘熷垱鑷1point3acres璁哄潧
        int res = getNum(result, proposedSolution);. 鍥磋鎴戜滑@1point 3 acres
        return res == (num1 + num2);
    }
}

// Map<Character, Integer> solve(Expression expression);
private boolean dfsHelper(char[] chaArray, HashSet<Character> numVisited, int pos, Map<Character, Integer> solution, Expression expression) {
    if (pos == chaArray.length) {
        if (expression.eval(solution)) {
            return true;
        }
        return false;-google 1point3acres
    }.1point3acres缃
    for (char num = '0'; num <= '9'; num++) {
        if (numVisited.contains(num)) {
            continue;
        }
        numVisited.add(num);
        solution.put(chaArray[pos], num);.鏈枃鍘熷垱鑷1point3acres璁哄潧
        if (dfsHelper(chaArray, numVisited, pos+1, solution, expression)) {.鏈枃鍘熷垱鑷1point3acres璁哄潧
            return true;
        }
        numVisited.remove(num);.鐣欏璁哄潧-涓浜-涓夊垎鍦
    }
    return false;
}. visit 1point3acres.com for more.

public Map<Character, Integer> solve(Expression expression) {
    Set<Character> chars = expression.getChars();. from: 1point3acres.com/bbs
    char[] chaArray = new char[chars.size()];
    int pos = 0;
    for (char cha: chars) {
        chaArray[pos++] = cha;
    }.鏈枃鍘熷垱鑷1point3acres璁哄潧
    HashSet<Character> numVisited = new HashSet<>();-google 1point3acres
    Map<Character, Integer> solution = new HashMap<>();
    if (dfsHelper(chaArray, numVisited, 0, solution, expression) {
        return solution;
    }
    return null;
}

.1point3acres缃

.1point3acres缃
补充内容 (2015-11-6 03:00):
拿到onsite了

评分

5

查看全部评分

本帖被以下淘专辑推荐:

venomj 发表于 2015-10-31 01:09:15 | 显示全部楼层
关注一亩三分地公众号:
Warald_一亩三分地
什么意思?给两个数把它们加起来?
回复 支持 反对

使用道具 举报

 楼主| hj867955629 发表于 2015-11-1 03:27:02 | 显示全部楼层
关注一亩三分地微博:
Warald
venomj 发表于 2015-10-31 01:09
什么意思?给两个数把它们加起来?

找一个字母和数字的对应关系,满足给定的pattern。确实不是很好理解。。
回复 支持 反对

使用道具 举报

tiger0572 发表于 2015-11-3 10:43:20 | 显示全部楼层
楼主去onsite了吗
回复 支持 反对

使用道具 举报

 楼主| hj867955629 发表于 2015-11-4 05:32:31 | 显示全部楼层

昨天给我发了个邮件让我确认一下信息,不知道是不是给onsite。。。还没消息
回复 支持 反对

使用道具 举报

鬼刃道 发表于 2015-11-13 07:09:01 | 显示全部楼层
楼主能不能具体的题目输入和输出啊 谢谢了啊
回复 支持 反对

使用道具 举报

鬼刃道 发表于 2015-11-13 07:20:19 | 显示全部楼层
对了 楼主 如果是backtracing的话
回复 支持 反对

使用道具 举报

鬼刃道 发表于 2015-11-13 07:22:10 | 显示全部楼层
numVisited.add(num);
solution.put(chaArray[pos], num);
if (dfsHelper(chaArray, numVisited, pos+1, solution, expression)) {
            return true;
}.
numVisited.remove(num);
.鐣欏璁哄潧-涓浜-涓夊垎鍦
这里的solution 不用像numvisited一样 backtracing吗?
回复 支持 反对

使用道具 举报

 楼主| hj867955629 发表于 2015-11-13 08:07:15 | 显示全部楼层
鬼刃道 发表于 2015-11-13 07:09
楼主能不能具体的题目输入和输出啊 谢谢了啊

输入输出就是括号里的参数啊,所有的函数都是我写的,目的就是为了找字母和数字的对应关系,满足给定的pattern
回复 支持 反对

使用道具 举报

 楼主| hj867955629 发表于 2015-11-13 08:09:01 | 显示全部楼层
鬼刃道 发表于 2015-11-13 07:22
numVisited.add(num);. 1point3acres.com/bbs
solution.put(chaArray, num);
if (dfsHelper(chaArray, numVisited, pos+1, solut ...

solution存的是字母和数字的对应关系,所以直接覆盖就行了,必须所有出现过的字母都有对应数字才行,没必要remove。还有visited最好用一个boolean数组,空间比较小。
回复 支持 反对

使用道具 举报

lzyfriday 发表于 2015-11-13 08:42:55 | 显示全部楼层
hejian大神
回复 支持 反对

使用道具 举报

 楼主| hj867955629 发表于 2015-11-13 09:20:52 | 显示全部楼层

没有offer的loser 你是?
回复 支持 反对

使用道具 举报

鬼刃道 发表于 2015-11-13 09:42:02 | 显示全部楼层
唉 我也是接到二面了 一面是lru cache。 ace后 秒给二面。。。。。 是不是lru cache都是这个套路。。。。 自己作死说能不能第二天面 结果安排到早上7:00am 一个东部的人来面
多谢楼主啦~
回复 支持 反对

使用道具 举报

Czon 发表于 2015-11-21 00:45:18 | 显示全部楼层
电面问这种需要解释半天的题确实很蛋疼
回复 支持 反对

使用道具 举报

littlewhite 发表于 2016-11-4 03:06:49 | 显示全部楼层
感谢楼主分享,今天电面还是这题,基本上按照楼主的思路写的,面试官说很好。
回复 支持 反对

使用道具 举报

primbo 发表于 2016-11-5 01:40:08 | 显示全部楼层
littlewhite 发表于 2016-11-4 03:06
感谢楼主分享,今天电面还是这题,基本上按照楼主的思路写的,面试官说很好。

我也面的这题,提前面经准备到了,感觉答得很好啊。竟然还被拒绝了。
回复 支持 反对

使用道具 举报

yuhaoz3 发表于 2016-12-7 07:29:47 | 显示全部楼层
感谢楼主分享
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-7-24 10:56

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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