一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 2172|回复: 16
收起左侧

Palantir二面

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

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

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

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

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


// This is the text editor interface.
// Anything you type or change here will be seen by the other person in real time.
.鏈枃鍘熷垱鑷1point3acres璁哄潧

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

231
+231
----
462

FOUR
+FOUR
-----
EIGHT

5239
+5239
-----
10478

FOUR
+ONE 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
----
FIVE. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴

6130
+149
----
6279

interface Expression {
    Set<Character> getChars();
    boolean eval(Map<Character, Integer> proposedSolution);
}


//input is "ONE" "ONE" "TWO"
// {O: 2, N: 3, E: 1, T: 4, W: 6} // proposedSolution for eval
class EvelExpression implements Expression {
    String input1, input2, result;
    Set<Character> chars;
    public EvelExpression(String s1, String s2, String result) {
        input1 = s1;. 1point 3acres 璁哄潧
        input2 = s2;
        this.result = result;
        chars = new HashSet<>();
    }. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴

    private void addCharacter(Set<Character> chars, String s) {
        for (int pos = 0; pos < s.length(); pos++) {
            chars.add(s.charAt(pos));
        }
    }

    Set<Character> getChars() {
        addCharacter(chars, s1);
        addCharacter(chars, s2);. more info on 1point3acres.com
        addCharacter(chars, result);
        return chars;.鏈枃鍘熷垱鑷1point3acres璁哄潧
    }. From 1point 3acres bbs

    private int getNum(String s, Map<Character, Integer> proposedSolution) {
        int res = 0;
. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴        for (int pos = 0; pos < s.length()(); pos++) {. from: 1point3acres.com/bbs
            res = res * 10 + proposedSolution.get(s.charAt(pos));
        }
        return res;.1point3acres缃
    }
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
    boolean eval(Map<Character, Integer> proposedSolution) {
        int num1 = getNum(input1, proposedSolution), num2 = getNum(input2, proposedSolution);. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
        int res = getNum(result, proposedSolution);
        return res == (num1 + num2);
    }.鐣欏璁哄潧-涓浜-涓夊垎鍦
}

// Map<Character, Integer> solve(Expression expression);. 1point3acres.com/bbs
private boolean dfsHelper(char[] chaArray, HashSet<Character> numVisited, int pos, Map<Character, Integer> solution, Expression expression) {. visit 1point3acres.com for more.
    if (pos == chaArray.length) {
        if (expression.eval(solution)) {
            return true;
        }. 鍥磋鎴戜滑@1point 3 acres
        return false;. 1point 3acres 璁哄潧
    }
    for (char num = '0'; num <= '9'; num++) {
        if (numVisited.contains(num)) {
            continue;
        }
        numVisited.add(num);
        solution.put(chaArray[pos], num);
        if (dfsHelper(chaArray, numVisited, pos+1, solution, expression)) {
            return true;
        }
        numVisited.remove(num);
    }
    return false;
}. from: 1point3acres.com/bbs

public Map<Character, Integer> solve(Expression expression) {.鏈枃鍘熷垱鑷1point3acres璁哄潧
    Set<Character> chars = expression.getChars();. 1point 3acres 璁哄潧
    char[] chaArray = new char[chars.size()];. 鍥磋鎴戜滑@1point 3 acres
    int pos = 0;
    for (char cha: chars) {
        chaArray[pos++] = cha;
    }. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
    HashSet<Character> numVisited = new HashSet<>();
    Map<Character, Integer> solution = new HashMap<>();
    if (dfsHelper(chaArray, numVisited, 0, solution, expression) {
        return solution;. from: 1point3acres.com/bbs
    }
    return null;. more info on 1point3acres.com
}


. 1point3acres.com/bbs

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

评分

3

查看全部评分

venomj 发表于 2015-10-31 01:09:15 | 显示全部楼层
什么意思?给两个数把它们加起来?
回复 支持 反对

使用道具 举报

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

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

使用道具 举报

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

使用道具 举报

 楼主| hj867955629 发表于 2015-11-4 05:32:31 | 显示全部楼层
tiger0572 发表于 2015-11-3 10:43.鐣欏璁哄潧-涓浜-涓夊垎鍦
楼主去onsite了吗

昨天给我发了个邮件让我确认一下信息,不知道是不是给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;. visit 1point3acres.com for more.
}.
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);
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-google 1point3acres
感谢楼主分享,今天电面还是这题,基本上按照楼主的思路写的,面试官说很好。

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

使用道具 举报

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

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

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

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2017-1-20 07:35

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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