《数据科学面试40+真题讲解》,K神本年度最后一次开课


一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投,内推你去多家公司面试
Airbnb 数据科学职位
in analytics and inference
天天打游戏、照样领工资,
你要不要来?
把贵司招聘信息放这里
查看: 5531|回复: 6
收起左侧

Snapchat OA Simple Words,附代码,test cast全过,直接拿去用吧!

[复制链接] |试试Instant~ |关注本帖
adrianhihihihi 发表于 2016-4-16 09:36:43 | 显示全部楼层 |阅读模式

2016(1-3月) 码农类 硕士 全职@Snapchat - 网上海投 - 在线笔试 |Passfresh grad应届毕业生

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

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

x
虽然已经入职Uber快一个月了,但是上上周发现邮箱里还有个OA没有做掉,不想浪费,就做了。今天转组面试面的累死人,回家本来想分享下Uber的面经。发现Snapchat的OA居然没有一个善良的人po自己Simple words代码上来的,那就让我来助攻一下吧!不为别的,一亩三分里帮了我太多太多,po答案但求人品,求大米!Test Case 是全过的,用的是Java(C++的大神们求轻喷,PHP才是世界上最好的语言!)/*
* Complete the function below.. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
*/

    static String[] simpleWords(String[] words) {
        List<String> res = new ArrayList<String>();
        HashSet<String> set = new HashSet<String>();
        for (int i = 0; i < words.length; i ++) {
            set.add(words[i]);.鐣欏璁哄潧-涓浜-涓夊垎鍦
        }
        for (int i = 0; i < words.length; i ++) {
            if (!isCompound(words[i], set)) {
                res.add(words[i]);
            }
        }.1point3acres缃
        String[] resArray = new String[res.size()];
        resArray = res.toArray(resArray);. From 1point 3acres bbs
        return resArray;
    }
    static boolean isCompound(String word, HashSet<String> set) {
        boolean wordIsInSet = false;
        if (set.contains(word)) {
            set.remove(word);
            wordIsInSet = true;
        }
        int n = word.length();. 1point 3acres 璁哄潧
        if (n == 0) {
            return false;
        }
        boolean[] dp = new boolean[n];
        for (int i = 0; i < dp.length; i ++) {. 1point 3acres 璁哄潧
            dp[i] = false;
        }
        for (int i = 0; i < dp.length; i ++) {.1point3acres缃
            helper(set, word.substring(0, i + 1), dp);
        }
        if (wordIsInSet) {
            set.add(word);
        }
        return dp[n - 1];. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
    }
    static void helper(HashSet<String> set, String s, boolean[] dp) {
        if (set.contains(s)) {
            dp[s.length() - 1] = true;
            return;
        } else {
            for (int i = 0; i < s.length(); i ++) {. visit 1point3acres.com for more.
                if (dp[i]) {
                    if (set.contains(s.substring(i + 1, s.length()))) {
                        dp[s.length() - 1] = true;
                        return;.1point3acres缃
                    }
                }. from: 1point3acres.com/bbs
            }
        }
    }.1point3acres缃


评分

1

查看全部评分

liuch912 发表于 2016-6-10 03:24:02 | 显示全部楼层
非常感谢! 楼主是真好人,都拿到offer了还帮助我们!多谢!
回复 支持 反对

使用道具 举报

jyttwc901231 发表于 2016-6-10 04:23:39 | 显示全部楼层
额,请问Lz题目具体要求是什么?。。。
回复 支持 反对

使用道具 举报

mtler 发表于 2016-6-10 21:34:29 | 显示全部楼层


同问
请问Lz题目具体要求是什么?。。。
回复 支持 反对

使用道具 举报

zhuhai_ZFC 发表于 2016-7-13 12:13:52 | 显示全部楼层
有一个问题一直不太理解:为什么一定要用DP?DP在这里的作用具体是干什么?
回复 支持 反对

使用道具 举报

clydexu 发表于 2016-10-21 07:29:29 | 显示全部楼层
不明白你为什么要做下面的判断,你的集合不是用全部word构建的么?.鏈枃鍘熷垱鑷1point3acres璁哄潧
boolean wordIsInSet = false;
        if (set.contains(word)) {
            set.remove(word);
            wordIsInSet = true;
        }
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-11-18 03:41

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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