一亩三分地论坛

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

扫码关注一亩三分地公众号
查看: 1018|回复: 9
收起左侧

bloomberg on-site 挂经

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

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

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

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

x
面了两轮就挂了
. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
第一题:
给一堆债券名,和对应的应付款

. from: 1point3acres.com/bbs
a:$100. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
b:  $50
c:  $50


另外给一个amount,用来付上面的债券, 比如200. 不一定要全部付完. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴

两种付款方法:. Waral 鍗氬鏈夋洿澶氭枃绔,
1) 尽量付完,
   如amount 是200, 那么先付a $100, 然后amount剩下100,再付b $50, c $50
     最后 amount剩下0
. From 1point 3acres bbs
    如amount 是120, 那么先付a $100, 然后amount剩下20,再付b $20,
     最后 amount剩下0, b剩下$30, C剩$下50


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付, 组合方法无下限
. visit 1point3acres.com for more.
这个应该算是设计题. From 1point 3acres bbs

鏉ユ簮涓浜.涓夊垎鍦拌鍧.
第二题:

给一堆字符串 【“abc”,“def”,“adbecf".....】
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
问有没有一个字符串是其中两个的组合
这里的组合是指交叉组合:

如: adbecf是 a b c 和 d e f 的交叉组合.1point3acres缃
          1234 是 1 3 和 2 4 的交叉组合

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







. From 1point 3acres bbs

. Waral 鍗氬鏈夋洿澶氭枃绔,


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
第二题简单吗? 我没想到好的思路

我写了一个,把每个词的个位数和偶位数,组成2个单词,然后查原arr里面是不是同时包含这2个词。
我的代码假设,empty string不能用来合成。
  1. public class cross_combination {. 1point3acres.com/bbs
  2.        
  3.         public static boolean combination(String[] input)
  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.                 {. From 1point 3acres bbs
  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).1point3acres缃
  15.                                 {
  16.                                         oddPosition.append(str.charAt(i));. Waral 鍗氬鏈夋洿澶氭枃绔,
  17.                                 }else
  18.                                 {
  19.                                         evenPosition.append(str.charAt(i));
  20.                                 }
  21.                         }
  22.                         if(dictionary.contains(oddPosition.toString())&&dictionary.contains(evenPosition.toString())) return true;.鐣欏璁哄潧-涓浜-涓夊垎鍦
  23.                 }
    . 鍥磋鎴戜滑@1point 3 acres
  24.                 return false;
  25.         }. visit 1point3acres.com for more.
  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));. 1point3acres.com/bbs
  35.         }. From 1point 3acres bbs
  36. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| datat 发表于 2016-10-26 07:33:08 | 显示全部楼层
zcrunsun 发表于 2016-10-26 05:14
楼主第一题的输出是什么?全部combinations?

这个是随便给一个组合 鏉ユ簮涓浜.涓夊垎鍦拌鍧.

比如

组合1 "a,b”
组合2 "c,d,e"
组合3 :组合1和组合2

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

给一个amount
问最后每个债券剩多少应付款
回复 支持 反对

使用道具 举报

 楼主| 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
这个是随便给一个组合. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴

比如

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

使用道具 举报

xuqicx23 发表于 2016-10-28 12:43:38 | 显示全部楼层
datat 发表于 2016-10-26 07:33. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
一个思路就是把单词拆开,这样在hashtable里搜就可以了
. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
我的一点思路,每次输入的组合当作一个字符串输进来。所有的债券存在一个map里先,之后根据用户输入进行计算更新map里面所有债券的付款额。node就是我的债券class
public class Bonds {
    private class Node {
        public String name;. more info on 1point3acres.com
        public int payamount;
        public Node(String name, int payamount) {
            this.name = name;. 1point3acres.com/bbs
            this.payamount = payamount;
        }
    }
.1point3acres缃
    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);
    }

    //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();
    }

. 1point3acres.com/bbs    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;
. 鍥磋鎴戜滑@1point 3 acres                    return;
                } else {
                    amount -= map.get(sb.charAt(i)).payamount;. 1point3acres.com/bbs
                    map.get(sb.charAt(i)).payamount = 0;
                }
            }
        } else {. From 1point 3acres bbs
            long total = 0;
            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);
            }
        }
    }. from: 1point3acres.com/bbs
    public void printamount() {
        for (Node node : map.values()) {
            System.out.println(node.name);
            System.out.println(node.payamount);. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
        }. From 1point 3acres bbs
    }
   
}
回复 支持 反对

使用道具 举报

bcc 发表于 2016-10-30 01:53:14 | 显示全部楼层
datat 发表于 2016-10-26 07:33
一个思路就是把单词拆开,这样在hashtable里搜就可以了

意思是还有其他思路咩
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-6 16:12

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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