10月28,K神开课讲数据科学,你来吗?


一亩三分地论坛

 找回密码
 获取更多干活,快来注册
Babeltime游戏工作室招工程师、美术和策划
Tubi TV招安卓、前端和机器学习工程师
把贵司招聘信息放这里
查看: 3036|回复: 10
收起左侧

bloomberg on-site 挂经

[复制链接] |试试Instant~ |关注本帖
datat 发表于 2016-10-26 02:43:38 | 显示全部楼层 |阅读模式

2016(10-12月) 码农类 硕士 全职@Bloomberg - 网上海投 - Onsite |Fail在职跳槽

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

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

x
面了两轮就挂了

第一题:
给一堆债券名,和对应的应付款


a:$100
-google 1point3acresb:  $50
c:  $50. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴


另外给一个amount,用来付上面的债券, 比如200. 不一定要全部付完
. visit 1point3acres.com for more.
两种付款方法:
1) 尽量付完,
   如amount 是200, 那么先付a $100, 然后amount剩下100,再付b $50, c $50. more info on 1point3acres.com
     最后 amount剩下0. visit 1point3acres.com for more.

    如amount 是120, 那么先付a $100, 然后amount剩下20,再付b $20,
     最后 amount剩下0, b剩下$30, C剩$下50
. Waral 鍗氬鏈夋洿澶氭枃绔,

2)按比例付
  比如amount是$80

a:$100
b:  $50
c:  $50

那么应付给  a:   80 * (100/200) = 40
那么应付给  b:   80 * (50/200) = 20
那么应付给  c:   80 * (50/200) = 20

1)2)可以组合,
比如   债券a 按方法1付, 债券b,c按方法2付, 组合方法无下限
. Waral 鍗氬鏈夋洿澶氭枃绔,
这个应该算是设计题


第二题:
. 1point 3acres 璁哄潧
给一堆字符串 【“abc”,“def”,“adbecf".....】

问有没有一个字符串是其中两个的组合
这里的组合是指交叉组合:. From 1point 3acres bbs

如: adbecf是 a b c 和 d e f 的交叉组合
          1234 是 1 3 和 2 4 的交叉组合. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷


这题本来很简单,结果自己想复杂了。
不过至少也说出来很多想法,
我做题的时候,面试人在那看手机,我心想要完蛋。果然挂了


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



. From 1point 3acres bbs




本帖被以下淘专辑推荐:

zcrunsun 发表于 2016-10-26 05:14:23 来自手机 | 显示全部楼层
楼主第一题的输出是什么?全部combinations?
回复 支持 反对

使用道具 举报

111180611 发表于 2016-10-26 06:30:11 | 显示全部楼层
第二题简单吗? 我没想到好的思路
回复 支持 反对

使用道具 举报

xiaozhuxiaozhu 发表于 2016-10-26 07:08:07 | 显示全部楼层
111180611 发表于 2016-10-26 06:30-google 1point3acres
第二题简单吗? 我没想到好的思路

我写了一个,把每个词的个位数和偶位数,组成2个单词,然后查原arr里面是不是同时包含这2个词。 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
我的代码假设,empty string不能用来合成。
  1. public class cross_combination {
  2.         . 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  3.         public static boolean combination(String[] input). 鍥磋鎴戜滑@1point 3 acres
  4.         {
  5.                 if(input.length==0||input==null) return false;
  6.                 List<String> dictionary = new ArrayList<>(Arrays.asList(input));
  7.                 for(String str: input)
  8.                 {
  9.                         if(str.length()==0) continue; //skip the empty string
  10.                         StringBuilder oddPosition = new StringBuilder();. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  11.                         StringBuilder evenPosition = new StringBuilder();
  12.                         for(int i =0; i < str.length();i++)
  13.                         {
  14.                                 if(i%2==0)
  15.                                 {-google 1point3acres
  16.                                         oddPosition.append(str.charAt(i));
  17.                                 }else
    .1point3acres缃
  18.                                 {
  19.                                         evenPosition.append(str.charAt(i));
  20.                                 }
  21.                         }
  22.                         if(dictionary.contains(oddPosition.toString())&&dictionary.contains(evenPosition.toString())) return true;
  23.                 }
  24.                 return false;. Waral 鍗氬鏈夋洿澶氭枃绔,
  25.         }
  26.        
  27.         public static void main(String[] args)
  28.         {
  29.                 String[] test1 = {"ac","bd","abcd"};
  30.                 System.out.println(combination(test1));
  31.                 String[] test2 = {"aaab","bbba","a"};
  32.                 System.out.println(combination(test2));
  33.                 String[] test3 = {"ace","bd","abcde"};
  34.                 System.out.println(combination(test3));
  35.         }
  36. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| datat 发表于 2016-10-26 07:33:08 | 显示全部楼层
zcrunsun 发表于 2016-10-26 05:14
楼主第一题的输出是什么?全部combinations?
.鏈枃鍘熷垱鑷1point3acres璁哄潧
这个是随便给一个组合

比如. from: 1point3acres.com/bbs

组合1 "a,b”
组合2 "c,d,e". 鍥磋鎴戜滑@1point 3 acres
组合3 :组合1和组合2. 1point3acres.com/bbs

组合1 按方法2付
组合2,按方法2付
组合3 按方法1付

给一个amount. 鍥磋鎴戜滑@1point 3 acres
问最后每个债券剩多少应付款
回复 支持 反对

使用道具 举报

 楼主| datat 发表于 2016-10-26 07:33:49 | 显示全部楼层
111180611 发表于 2016-10-26 06:30
第二题简单吗? 我没想到好的思路

一个思路就是把单词拆开,这样在hashtable里搜就可以了
回复 支持 反对

使用道具 举报

nibuxing 发表于 2016-10-26 09:24:33 | 显示全部楼层
请问楼主投了多久以后安排电面的
回复 支持 反对

使用道具 举报

xuqicx23 发表于 2016-10-28 12:16:46 | 显示全部楼层
datat 发表于 2016-10-26 07:33
这个是随便给一个组合. Waral 鍗氬鏈夋洿澶氭枃绔,

比如

所以是设计一个系统然后这些债券是输入?用户同样也输入付款方法然后我们给出每个债券剩余的钱数?有点没清楚。。。
回复 支持 反对

使用道具 举报

xuqicx23 发表于 2016-10-28 12:43:38 | 显示全部楼层
datat 发表于 2016-10-26 07:33.鏈枃鍘熷垱鑷1point3acres璁哄潧
一个思路就是把单词拆开,这样在hashtable里搜就可以了
. visit 1point3acres.com for more.
我的一点思路,每次输入的组合当作一个字符串输进来。所有的债券存在一个map里先,之后根据用户输入进行计算更新map里面所有债券的付款额。node就是我的债券class
public class Bonds {. 1point 3acres 璁哄潧
    private class Node {
        public String name;
        public int payamount;
        public Node(String name, int payamount) {-google 1point3acres
            this.name = name;
            this.payamount = payamount;
        }
    }
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴. Waral 鍗氬鏈夋洿澶氭枃绔,
    HashMap<String, Node> map = new HashMap<String, Node>();
    //store the permutation that user want in the format of String
    String sb = "";

    public Bonds() {}

    public void add(String name, int payamount) {
        Node node = new Node(name, payamount);
        map.put(name, node);
    }. Waral 鍗氬鏈夋洿澶氭枃绔,

    //User request for which bond is input in the format of string
    public void inputList(ArrayList<String> list) {
        StringBuilder ss = new StringBuilder();
        for (String s : list) {
            ss.append(s);
        }
        sb = ss.toString();
    }. more info on 1point3acres.com
-google 1point3acres
    public void calculate(int amount, int num) {
        if (num == 1) {
            for (int i = 0; i < sb.length(); i++) {
                if (amount < map.get(sb.charAt(i)).payamount) {
                    map.get(sb.charAt(i)).payamount -= amount;
                    return;. more info on 1point3acres.com
                } else {
                    amount -= map.get(sb.charAt(i)).payamount;
                    map.get(sb.charAt(i)).payamount = 0;
                }. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
            }. 1point 3acres 璁哄潧
        } else {
            long total = 0;
-google 1point3acres            for (int i = 0; i < sb.length(); i++) {
                total += map.get(sb.charAt(i)).payamount;
            }
            for (int i = 0; i < sb.length(); i++) {
                map.get(sb.charAt(i)).payamount -= amount * (map.get(sb.charAt(i)).payamount / total);
            }
        }
    }
    public void printamount() {
        for (Node node : map.values()) {
            System.out.println(node.name);
            System.out.println(node.payamount);
        }
    }
   
}
回复 支持 反对

使用道具 举报

bcc 发表于 2016-10-30 01:53:14 | 显示全部楼层
datat 发表于 2016-10-26 07:33. visit 1point3acres.com for more.
一个思路就是把单词拆开,这样在hashtable里搜就可以了
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
意思是还有其他思路咩
回复 支持 反对

使用道具 举报

ffcc 发表于 2017-1-21 11:19:11 | 显示全部楼层
你好,能问一下你面的是哪一个组么?
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-9-21 00:52

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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