May 2009 - May 2017 论坛八周年-你的足迹,我的骄傲


一亩三分地论坛

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

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

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

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

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

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

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

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]);
            }
        }. 鍥磋鎴戜滑@1point 3 acres
        String[] resArray = new String[res.size()];
        resArray = res.toArray(resArray);
        return resArray; 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
    }
    static boolean isCompound(String word, HashSet<String> set) {
        boolean wordIsInSet = false;
        if (set.contains(word)) {
            set.remove(word);-google 1point3acres
            wordIsInSet = true;
        }
        int n = word.length();
        if (n == 0) {
. 鍥磋鎴戜滑@1point 3 acres            return false;
        }
        boolean[] dp = new boolean[n];
        for (int i = 0; i < dp.length; i ++) {
            dp[i] = false;
        }
        for (int i = 0; i < dp.length; i ++) {
            helper(set, word.substring(0, i + 1), dp);
        }
        if (wordIsInSet) {
            set.add(word);. from: 1point3acres.com/bbs
        }. Waral 鍗氬鏈夋洿澶氭枃绔,
        return dp[n - 1];
    }
    static void helper(HashSet<String> set, String s, boolean[] dp) {. 1point 3acres 璁哄潧
        if (set.contains(s)) {. 1point 3acres 璁哄潧
            dp[s.length() - 1] = true;
            return;
        } else {
            for (int i = 0; i < s.length(); i ++) {
                if (dp[i]) {
                    if (set.contains(s.substring(i + 1, s.length()))) {
                        dp[s.length() - 1] = true;. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
                        return;
                    }. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
                }
            }
        }
    }

. 1point 3acres 璁哄潧

评分

1

查看全部评分

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

使用道具 举报

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

使用道具 举报

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


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

使用道具 举报

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

使用道具 举报

clydexu 发表于 2016-10-21 07:29:29 | 显示全部楼层
不明白你为什么要做下面的判断,你的集合不是用全部word构建的么?-google 1point3acres
boolean wordIsInSet = false;. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
        if (set.contains(word)) {
            set.remove(word);
            wordIsInSet = true;
        }
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-5-28 03:44

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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