📣 Back to School开学季 - VIP通行证5折优惠!蓝莓、Offer多多同步优惠
回复: 8
跳转到指定楼层
上一主题 下一主题
收起左侧

Jane Street 电面

全局:

2019(7-9月) 码农类General 本科 全职@janestreet - 网上海投 - HR筛选 技术电面  | | Fail | 在职跳槽

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

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
来源:对这家感兴趣是因为前段时间在地里看到一个帖子https://www.1point3acres.com/bbs/thread-538912-1-1.html,说得我心动了,然后又上linkedin查了查这家的employee,基本上都是top school出来的,而且很少有跳槽出去的,感觉很不可思议,就去他们官网投了software developer的简历,投完过了大概一星期收到HR邮件安排下一步

他们先安排我和一个engineer电话聊了半小时,这个就类似tech公司的HR面,主要是我问关于他们公司的问题,同时对方也问我一些常规问题,比如对下一份工作最看重什么,为什么考虑他们家等等,感觉面试官语速很快,也是聪明人

然后HR就安排第一轮电面,可能因为他们家engineer不多,电面也约不到很早的时间,感觉投的人也挺多的

电面形式:1 hr 电话面试,用coderpad写code,但不需要编译,只要口头跑testcase

题目:分成三个小问,难度是层层递进的,后面的小问可以使用前面的function,感觉这种形式的面试题都很不错,每个面试者能做出来的问题数量不一样,容易有区分度,而且每个小问要完成的东西不多,很容易有思路怎么做

您好!
本帖隐藏的内容需要积分高于 180 才可浏览
您当前积分为 0。
使用VIP即刻解锁阅读权限或查看其他获取积分的方式
游客,您好!
本帖隐藏的内容需要积分高于 180 才可浏览
您当前积分为 0。
VIP即刻解锁阅读权限查看其他获取积分的方式
Unlock interview details and practice with AI
Curated Interview Questions from Top Companies



感受:面试官很聪明,经常能看出我代码中的小问题并且给出提示,让我自己找出来问题在哪,而且我讲解思路的时候也会及时回应,是非常愉快的一次面试体验

结果:第二天收到拒信,有点惊讶,因为题都做出来了,聊天也没问题,根据我经历过的面试,同样的表现在其他的tech company都是必过的……非要说哪里不好的话,就是不够bug free吧,经过修改和面试官提示才全部写对,那感觉他们家bar也太高了……问了下HR,没给具体的feedback,但也没说有冷冻期之类的,可能过段时间就可以重新申

如果面经对你有帮助的话,请帮忙加一点大米,谢谢!


评分

参与人数 12大米 +45 收起 理由
zcin + 1 赞一个
followjason + 1 给你点个赞!
elidrinkscoffee + 1 很有用的信息!
mathgirl + 1 给你点个赞!
rainingdrop + 1 给你点个赞!

查看全部评分


上一篇:qualtrics 店面
下一篇:Wish on site面经 题都不难
地里匿名用户
推荐
匿名用户-UXAK8  2021-11-3 05:09:54
  1. // Source: https://www.1point3acres.com/bbs/thread-547993-1-1.html
  2. class StringCompressor {
  3.   // for continuous_compress
  4.   char continuous_curr_char;
  5.   int continuous_curr_cnt{0};

  6.   // for compress_seqs
  7.   unordered_map<int, string> buffer;
  8.   int next_expected_seq_num{0};

  9.   public:
  10.   vector<pair<char, int>> compressed_tuples(const string& chars) {
  11.     vector<pair<char, int>> res;
  12.     char curr_char;
  13.     int curr_cnt = 0;
  14.     for (char c : chars) {
  15.       if (curr_cnt == 0 || curr_char == c) {
  16.         ++curr_cnt;
  17.         curr_char = c;
  18.       } else {
  19.         res.emplace_back(curr_char, curr_cnt);
  20.         curr_char = c;
  21.         curr_cnt = 1;
  22.       }
  23.     }
  24.     res.emplace_back(curr_char, curr_cnt);
  25.     return res;
  26.   }

  27.   vector<pair<char, int>> continuous_compress(const string& chars) {
  28.     vector<pair<char, int>> res;
  29.     char curr_char = continuous_curr_char;
  30.     int curr_cnt = continuous_curr_cnt;
  31.     for (char c : chars) {
  32.       if (curr_cnt == 0 || curr_char == c) {
  33.         ++curr_cnt;
  34.         curr_char = c;
  35.       } else {
  36.         res.emplace_back(curr_char, curr_cnt);
  37.         curr_char = c;
  38.         curr_cnt = 1;
  39.       }
  40.     }
  41.     continuous_curr_char = curr_char;
  42.     continuous_curr_cnt = curr_cnt;
  43.     return res;
  44.   }

  45.   vector<pair<char, int>> compress_seqs(int seq_num, const string& chars) {
  46.     buffer[seq_num] = chars;
  47.     if (seq_num != next_expected_seq_num) {
  48.       return {};
  49.     }

  50.     string s;
  51.     int curr_seq_num;
  52.     for (curr_seq_num = next_expected_seq_num; buffer.find(curr_seq_num) != buffer.end(); ++curr_seq_num) {
  53.       s += buffer[curr_seq_num];
  54.       buffer.erase(curr_seq_num);
  55.     }

  56.     next_expected_seq_num = curr_seq_num;
  57.     return continuous_compress(s);
  58.   }
  59. };

  60. void testCompress() {
  61.   StringCompressor compressor;

  62.   // Expected: {a, 2},{b, 2},{c, 3},
  63.   for (auto p : compressor.compressed_tuples("aabbccc")) {
  64.     cout << "{" << p.first << ", " << p.second << "}," ;
  65.   }
  66.   cout << endl;

  67.   // Expected: {a, 1},{b, 11},
  68.   for (auto p : compressor.compressed_tuples("abbbbbbbbbbb")) {
  69.     cout << "{" << p.first << ", " << p.second << "}," ;
  70.   }
  71.   cout << endl;

  72.   // Expected: {a, 3}, {b, 5}, {c, 2}, {d, 1}
  73.   for (auto p : compressor.continuous_compress("aaabbb")) {
  74.     cout << "{" << p.first << ", " << p.second << "}," ;
  75.   }
  76.   for (auto p : compressor.continuous_compress("bbccd")) {
  77.     cout << "{" << p.first << ", " << p.second << "}," ;
  78.   }
  79.   for (auto p : compressor.continuous_compress("ee")) {
  80.     cout << "{" << p.first << ", " << p.second << "}," ;
  81.   }
  82.   cout << endl;

  83.   compressor = StringCompressor();
  84.   for (auto p : compressor.compress_seqs(2, "ccc")) {
  85.     cout << "{" << p.first << ", " << p.second << "}," ;
  86.   }
  87.   for (auto p : compressor.compress_seqs(1, "bbc")) {
  88.     cout << "{" << p.first << ", " << p.second << "}," ;
  89.   }
  90.   for (auto p : compressor.compress_seqs(0, "aa")) {
  91.     cout << "{" << p.first << ", " << p.second << "}," ;
  92.   }
  93.   for (auto p : compressor.compress_seqs(3, "cdd")) {
  94.     cout << "{" << p.first << ", " << p.second << "}," ;
  95.   }
  96.   cout << endl;
  97. }
复制代码
回复

使用道具 举报

全局:
遇到了原题, 特地回来加米。

以及大家不要像我一样, 背了leetcode 那题的答案, 被面试官来了一句 你为什么要用 anchor 为名字, 你是不是见过这题:)

😅
回复

使用道具 举报

🔗
crazycodyman 2019-9-7 14:37:08 | 只看该作者
全局:
JS里面都是天才
回复

使用道具 举报

🔗
q4chu 2019-12-10 09:54:26 | 只看该作者
全局:
请问一下楼主,第一轮一定是engineer聊天吗?我也收到了,但是不知道第一轮是个怎么样的形式
回复

使用道具 举报

🔗
mathgirl 2020-1-8 13:47:36 | 只看该作者
全局:
已加米,想问下楼主,有一个sequence number和一个string的第三问怎么做啊?
回复

使用道具 举报

全局:
elidrinkscoffee 发表于 2020-8-25 05:38
遇到了原题, 特地回来加米。

以及大家不要像我一样, 背了leetcode 那题的答案, 被面试官来了一句 你 ...

请教拿到Jane St的面试有多难呢?敢问各位拿到面试的牛牛都是啥背景?top本科?
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-01PUH  2021-12-8 06:43:46
感谢分享!
回复

使用道具 举报

🔗
sunsiyue618 2023-9-25 17:01:20 | 只看该作者
全局:
  1. package src;

  2. import java.util.ArrayList;
  3. import java.util.LinkedList;
  4. import java.util.List;
  5. import java.util.PriorityQueue;

  6. class StringCompression {
  7.     // 第一问:LC 443,不用改input,直接输出List<Tuple<char, int>>
  8.     public List<String> stringCompressionQ1(String input) {
  9.         List<String> res = new ArrayList<>();
  10.         int i = 0;
  11.         while (i < input.length()) {
  12.             char curChar = input.charAt(i);
  13.             int cnt = 1;
  14.             i++;
  15.             while (i < input.length() && curChar == input.charAt(i)) {
  16.                 cnt++;
  17.                 i++;
  18.             }
  19.             res.add(curChar + " " + cnt);
  20.         }
  21.         return res;
  22.     }

  23.     // 第二问:新的这个function会被call很多次,每次还是给一个string,
  24.     // 比如第一次aaabbb,第二次bbccd,第三次ee,对应的输出分别是(a - 3),
  25.     // (b - 5, c - 2),(d - 1),也就是不输出每个string最后一个tuple的结果,
  26.     // 而是要等下一次输入看还有没有一样的char相连,然后一起输出结果;
  27.     // 比如如果有一次的输入是kkk,那就什么都不输出
  28.     char tailChar;
  29.     int count = 0;

  30.     public List<String> stringCompressionQ2(String input) {
  31.         List<String> res = new LinkedList<>();
  32.         int i = 0;
  33.         while (i < input.length()) {

  34.             if (this.tailChar == '\u0000') {
  35.                 tailChar = input.charAt(i);
  36.             }

  37.             while (i < input.length() && this.tailChar == input.charAt(i)) {
  38.                 this.count++;
  39.                 i++;
  40.             }

  41.             if (i == input.length()) {
  42.                 break;
  43.             }
  44.             res.add(tailChar + " " + this.count);
  45.             this.tailChar = input.charAt(i);
  46.             this.count = 0;
  47.         }
  48.         return res;
  49.     }

  50.     public class InputSequence {
  51.         int seq;
  52.         String input;

  53.         public InputSequence(int s, String i) {
  54.             seq = s;
  55.             input = i;
  56.         }
  57.     }

  58.     PriorityQueue<InputSequence> buffer = new PriorityQueue<>(
  59.             (InputSequence a, InputSequence b) -> Integer.compare(a.seq, b.seq));
  60.     int curSeq = 0;

  61.     // 第三问:新的function的输入有一个sequence number和一个string,
  62.     // 比如(2, ccc),(1, bbc),(0, aa),(3, cdd),那么在接受前两个输入的时
  63.     // 候不用输出什么东西,但在第三个输入出现的时候,因为我们已经有了从0到2的所有输入,
  64.     // 所以输出整合的string对应的压缩结果,也就是aabbcccc对应的(a - 2, b - 2);
  65.     // 注意我们不输出c的结果,而是在接收3对应的string以后,继续输出(c - 5);整体
  66.     // 的意思就是一旦有了从头开始的一段连续的string,就输出它对应的结果,然后等下一
  67.     // 段连续的string‍‌‌‌‍‌‌‍‍‍‌‍‍‌‍‍‍‍‌出现

  68.     public List<String> stringCompressionQ3(InputSequence input) {
  69.         buffer.add(input);
  70.         StringBuilder sb = new StringBuilder();
  71.         while (!buffer.isEmpty() && buffer.peek().seq == curSeq) {
  72.             InputSequence next = buffer.poll();
  73.             curSeq = next.seq + 1;
  74.             sb.append(next.input);
  75.         }
  76.         return stringCompressionQ2(sb.toString());
  77.     }

  78.     public static void main(String[] args) {
  79.         System.out.println("=== String Copression ===");
  80.         StringCompression solution = new StringCompression();

  81.         // List<String> q1Res = solution.stringCompressionQ1("aaabbbcc");
  82.         // for (String s : q1Res) {
  83.         // System.out.println(s);
  84.         // }

  85.         // List<String> q2Res = solution.stringCompressionQ2("aaab");
  86.         // for (String s : q2Res) {
  87.         // System.out.println(s);
  88.         // }
  89.         // System.out.println("-----");
  90.         // List<String> q2Res2 = solution.stringCompressionQ2("bbccd");
  91.         // for (String s : q2Res2) {
  92.         // System.out.println(s);
  93.         // }
  94.         // System.out.println("-----");
  95.         // List<String> q2Res3 = solution.stringCompressionQ2("ee");
  96.         // for (String s : q2Res3) {
  97.         // System.out.println(s);
  98.         // }

  99.         List<String> q3Res1 = solution.stringCompressionQ3(solution.new InputSequence(2, "ccc"));
  100.         for (String s : q3Res1) {
  101.             System.out.println(s);
  102.         }
  103.         System.out.println("-----");
  104.         List<String> q3Res2 = solution.stringCompressionQ3(solution.new InputSequence(1, "bbc"));
  105.         for (String s : q3Res2) {
  106.             System.out.println(s);
  107.         }
  108.         System.out.println("-----");
  109.         List<String> q3Res3 = solution.stringCompressionQ3(solution.new InputSequence(3, "d"));
  110.         for (String s : q3Res3) {
  111.             System.out.println(s);
  112.         }
  113.         System.out.println("-----");
  114.         List<String> q3Res4 = solution.stringCompressionQ3(solution.new InputSequence(0, "aa"));
  115.         for (String s : q3Res4) {
  116.             System.out.println(s);
  117.         }
  118.     }
  119. }
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

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