一亩三分地论坛

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

一亩三分地官方iOS手机应用下载
查看: 3079|回复: 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.. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴


ONE
+ONE
----
TWO

231
+231
----
462

FOUR
. visit 1point3acres.com for more.+FOUR
-----
EIGHT

5239
.1point3acres缃+5239
-----
10478

FOUR
+ONE
----. from: 1point3acres.com/bbs
FIVE. more info on 1point3acres.com
. 鍥磋鎴戜滑@1point 3 acres
6130
+149. From 1point 3acres bbs
----. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
6279. From 1point 3acres bbs

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;.1point3acres缃
        input2 = s2;
        this.result = result;
        chars = new HashSet<>();. 1point3acres.com/bbs
    }.鏈枃鍘熷垱鑷1point3acres璁哄潧

    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);
        addCharacter(chars, result);.1point3acres缃
        return chars;
    }

    private int getNum(String s, Map<Character, Integer> proposedSolution) {
        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);
        int res = getNum(result, proposedSolution);
        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) {. visit 1point3acres.com for more.
        if (expression.eval(solution)) {
            return true;. 1point 3acres 璁哄潧
        }
        return false;.1point3acres缃
    }
    for (char num = '0'; num <= '9'; num++) {
        if (numVisited.contains(num)) {. from: 1point3acres.com/bbs
            continue;
        }
        numVisited.add(num);
        solution.put(chaArray[pos], num);
        if (dfsHelper(chaArray, numVisited, pos+1, solution, expression)) {
            return true;
        }. from: 1point3acres.com/bbs
        numVisited.remove(num);
    }-google 1point3acres
    return false;. Waral 鍗氬鏈夋洿澶氭枃绔,
}

public Map<Character, Integer> solve(Expression expression) {
    Set<Character> chars = expression.getChars();
    char[] chaArray = new char[chars.size()];
    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; 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
    }
    return null;
}

.鐣欏璁哄潧-涓浜-涓夊垎鍦


补充内容 (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.1point3acres缃
什么意思?给两个数把它们加起来?

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

使用道具 举报

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

使用道具 举报

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

昨天给我发了个邮件让我确认一下信息,不知道是不是给onsite。。。还没消息
求职神器indeed - 在全球最大的求职网站找找适合你的工作?
回复 支持 反对

使用道具 举报

鬼刃道 发表于 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. from: 1point3acres.com/bbs
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 | 显示全部楼层
lzyfriday 发表于 2015-11-13 08:42. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
hejian大神

没有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
感谢楼主分享,今天电面还是这题,基本上按照楼主的思路写的,面试官说很好。
.1point3acres缃
我也面的这题,提前面经准备到了,感觉答得很好啊。竟然还被拒绝了。
回复 支持 反对

使用道具 举报

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

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2017-3-30 10:54

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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