近期论坛无法登录的解决方案


一亩三分地论坛

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

一亩三分地官方iOS手机应用下载
查看: 4333|回复: 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
----
TWO. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷

231
+231
----
462

FOUR
+FOUR
-----
EIGHT
. 1point 3acres 璁哄潧
5239
+5239
-----
10478
. From 1point 3acres bbs
FOUR. 1point 3acres 璁哄潧
+ONE
----
FIVE
.鐣欏璁哄潧-涓浜-涓夊垎鍦
6130
+149
----.鐣欏璁哄潧-涓浜-涓夊垎鍦
6279

interface Expression {
    Set<Character> getChars();
    boolean eval(Map<Character, Integer> proposedSolution);
}. visit 1point3acres.com for more.


//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;
        input2 = s2;
. from: 1point3acres.com/bbs         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));
        }
    }
. visit 1point3acres.com for more.
    Set<Character> getChars() {
        addCharacter(chars, s1);
        addCharacter(chars, s2);
        addCharacter(chars, result);
        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);. more info on 1point3acres.com
        int res = getNum(result, proposedSolution);
        return res == (num1 + num2);
    }-google 1point3acres
}. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴

// 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;
    }
    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);.鏈枃鍘熷垱鑷1point3acres璁哄潧
    }
    return false;
}

public Map<Character, Integer> solve(Expression expression) {
    Set<Character> chars = expression.getChars();
    char[] chaArray = new char[chars.size()];
    int pos = 0;. 1point 3acres 璁哄潧
    for (char cha: chars) { 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
        chaArray[pos++] = cha;
    }
    HashSet<Character> numVisited = new HashSet<>();
    Map<Character, Integer> solution = new HashMap<>();. 1point3acres.com/bbs
    if (dfsHelper(chaArray, numVisited, 0, solution, expression) {
        return solution;
    }
    return null;-google 1point3acres
}. more info on 1point3acres.com

鏉ユ簮涓浜.涓夊垎鍦拌鍧.


补充内容 (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)) {. From 1point 3acres bbs
            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);
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 一个东部的人来面. 1point 3acres 璁哄潧
多谢楼主啦~
回复 支持 反对

使用道具 举报

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-6-23 06:23

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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