推荐:数据科学课程和书籍清单以及培训讲座


一亩三分地论坛

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

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

Zillow OA(附解答) 和 9月26第一轮电面

[复制链接] |试试Instant~ |关注本帖
bearcat001 发表于 2016-9-30 01:52:43 | 显示全部楼层 |阅读模式

2016(7-9月) 码农类 硕士 全职@Zillow - 内推 - 技术电面 |Passfresh grad应届毕业生

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

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

x
OA似乎是常见的两题
  1. Question 1) Given a string, write a routine that converts the string to a long, without using the
  2. built in functions that would do this. Describe what (if any) limitations the code has. For 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  3. example:
  4. long stringToLong(String s)
  5. {
  6.      /* code goes here to convert a string to a long */
  7. }
  8. void test()
  9. {
  10. long i = stringToLong("123");. From 1point 3acres bbs
  11. if (i == 123)
  12. // success
  13. else
  14. // failure
  15. }
复制代码
  1. /*
  2.      * Complete the function below.
  3.      */. 1point 3acres 璁哄潧
  4.     static long parseLong(String str) throws Exception {
  5.         if (str == null || str.length() == 0) {. 鍥磋鎴戜滑@1point 3 acres
  6.             throw new Exception("Invalid number.");
  7.         }
  8.         long result = 0;. Waral 鍗氬鏈夋洿澶氭枃绔,
  9.         int len = str.length();.1point3acres缃
  10.         boolean isPositive = true;
  11.         int start = 0; // first number

  12.         // check sign
  13.         if (str.charAt(start) == '+') {
  14.             isPositive = true;
  15.             start++;
  16.         } else if (str.charAt(start) == '-') {
  17.             isPositive = false;
  18.             start++;
  19.         }

  20.         // check if valid
  21.         if (start == len || (str.charAt(start) == '0' && start != len - 1)) {. from: 1point3acres.com/bbs
  22.             throw new Exception("Invalid number.");
  23.         }

  24.         for (int i = start; i < len; i++) {
  25.             char c = str.charAt(i);
  26.             if (c >= '0' && c <= '9') {. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  27.                 if (result > Long.MAX_VALUE / 10) {
  28.                     throw new Exception("Number overflow.");
  29.                 }. 1point3acres.com/bbs
  30.                 if (result == Long.MAX_VALUE / 10 && i == len - 1) {
  31.                     if (isPositive && c > '7') {
  32.                         throw new Exception("Number overflow.");
  33.                     } else if (!isPositive && c > '8') {
  34.                         throw new Exception("Number Overflow.");
  35.                     } else if (!isPositive && c == '8') {
  36.                         return Long.MIN_VALUE;
  37.                     }
  38.                 }
  39.                 result = result * 10;
  40.                 result += (long) (c - '0');
  41.             } else {. from: 1point3acres.com/bbs
  42.                 throw new Exception("Invalid number.");
  43.             }. From 1point 3acres bbs
  44.         }. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴

  45.         return result;
  46.     }
复制代码
  1. Question 2) Implement insert and delete in a tri-nary tree. A tri-nary tree is much like a binary
  2. tree but with three child nodes for each parent instead of two -- with the left node being values
  3. less than the parent, the right node values greater than the parent, and the middle nodes values
  4. equal to the parent.
  5. For example, suppose I added the following nodes to the tree in this order: 5, 4, 9, 5, 7, 2, 2.
  6. The resulting tree would look like this:
  7.     5
  8.   / | \
  9. 4  5  9
  10. /     /. more info on 1point3acres.com
  11. 2   7
  12. |
  13. 2
复制代码
  1. /* PLEASE DO NOT UNCOMMENT THIS BLOCK

  2. import java.io.IOException;
  3. import java.io.BufferedWriter;
  4. import java.io.FileWriter;. 1point 3acres 璁哄潧
  5. import java.util.*;. from: 1point3acres.com/bbs
  6. // No other imports are permitted

  7. // The following definitions of Tree and Node are provided.
  8. // insert and delete will be methods of class Tree.

  9. public class Tree {
  10.     private class Node {
  11.         private int val;
  12.         private Node left = null;
  13.         private Node right = null;
  14.         private Node mid = null;
  15. 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  16.         public Node(int val) {
  17.             this.val = val;
  18.         }
  19.     }. more info on 1point3acres.com
  20. . visit 1point3acres.com for more.
  21.     private Node root;
  22. */

  23.     /*. more info on 1point3acres.com
  24.      * Please complete this method.
  25.      * Inserts val into the tree..1point3acres缃
  26.      */
  27.     public void insert(int val) {
  28.         if (root == null) {
  29.             root = new Node(val);
  30.             return;
  31.         }

  32.         insert(root, val);
  33.     }
  34. . Waral 鍗氬鏈夋洿澶氭枃绔,
  35.     private void insert(Node root, int val) {
  36.         if (root == null) {
    . 1point 3acres 璁哄潧
  37.             return;
  38.         } else if (root.val == val) {.鏈枃鍘熷垱鑷1point3acres璁哄潧
  39.             Node curr = root;
  40.             while (curr.mid != null) {
  41.                 curr = curr.mid;.1point3acres缃
  42.             }
  43.             curr.mid = new Node(val);
  44.         } else if (root.val > val) {. more info on 1point3acres.com
  45.             if (root.left != null) {
  46.                 insert(root.left, val);. Waral 鍗氬鏈夋洿澶氭枃绔,
  47.             } else {. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  48.                 root.left = new Node(val);
  49.             }
  50.         } else if (root.val < val) {
  51.             if (root.right != null) {
  52.                 insert(root.right, val);
  53.             } else {
  54.                 root.right = new Node(val);
  55.             }
  56.         }
  57.     }

  58.     /*
  59.      * Please complete this method.
  60.      * Deletes only one instance of val from the tree.
  61.      * If val does not exist in the tree, do nothing.
  62.      */
  63.     public void delete(int val) {
  64.         root = delete(root, val);
  65.     }. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴

  66.     private Node delete(Node root, int val) {
  67.         if (root == null) {
  68.             return root;
  69.         }
  70.         if (root.val == val) {. From 1point 3acres bbs
  71.             // delete mid. From 1point 3acres bbs
  72.             if (root.mid != null) {
  73.                 root.mid = delete(root.mid, val);
  74.             } else if (root.right != null) {
  75.                 // get most left-bottom one from right subtree. Waral 鍗氬鏈夋洿澶氭枃绔,
  76.                 Node curr = root.right;
  77.                 while (curr.left != null) {
    . 1point 3acres 璁哄潧
  78.                     curr = curr.left;
  79.                 }
  80.                 int smallest = curr.val;
  81.                 root.val = smallest;
  82.                 root.right = delete(root.right, smallest);
  83.             } else { // replace root with it's left
  84.                 root = root.left;
  85.             }. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  86.         } else if (root.val > val) {
  87.             root.left = delete(root.left, val);
  88.         } else if (root.val < val) {
  89.             root.right = delete(root.right, val);
  90.         }
  91. . more info on 1point3acres.com
  92.         return root;. more info on 1point3acres.com
  93.     }
复制代码
电面 . 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
第一题是把一个string变成float,string表示形式为
"-5"    => -5.0
"3/4"  => 0.75
"1 3/4"  => 1.75  

第二题是一个机器人,在一个matrix里面从左上角到右下角(只能向右或者向下),每个格子有硬币,求最后能拿到的最大硬币值


.1point3acres缃

评分

2

查看全部评分

janice0613 发表于 2016-9-30 02:13:15 | 显示全部楼层
楼主,你的zillow内推了多收到的确认邮件呢?
回复 支持 反对

使用道具 举报

 楼主| bearcat001 发表于 2016-9-30 02:25:06 来自手机 | 显示全部楼层
janice0613 发表于 2016-9-30 02:13
楼主,你的zillow内推了多收到的确认邮件呢?

我记得没太久,应该一周?
回复 支持 反对

使用道具 举报

忆梦前尘 发表于 2016-9-30 03:41:41 | 显示全部楼层
求问LZ投的是zillow什么职位。。。。翻了一下官网university的分类是空的。。
回复 支持 反对

使用道具 举报

 楼主| bearcat001 发表于 2016-9-30 03:47:52 | 显示全部楼层
忆梦前尘 发表于 2016-9-30 03:41
求问LZ投的是zillow什么职位。。。。翻了一下官网university的分类是空的。。

Software Development Engineer New Grad
是内推人帮我选的~
回复 支持 反对

使用道具 举报

忆梦前尘 发表于 2016-9-30 04:46:43 | 显示全部楼层
bearcat001 发表于 2016-9-29 11:47. more info on 1point3acres.com
Software Development Engineer New Grad
是内推人帮我选的~
. Waral 鍗氬鏈夋洿澶氭枃绔,
完蛋了。。。。现在已经没有了。。。
回复 支持 反对

使用道具 举报

wantanintern 发表于 2016-10-1 01:54:36 | 显示全部楼层
谢谢lz分享,我下下周也要店面了,求问lz有看地里面经吗?我搜到的都是去年前年的。。
回复 支持 反对

使用道具 举报

 楼主| bearcat001 发表于 2016-10-1 02:28:56 | 显示全部楼层
wantanintern 发表于 2016-10-1 01:54. from: 1point3acres.com/bbs
谢谢lz分享,我下下周也要店面了,求问lz有看地里面经吗?我搜到的都是去年前年的。。

我没找到太多面筋~ 我就在刷leetcode
回复 支持 反对

使用道具 举报

wantanintern 发表于 2016-10-1 04:11:19 | 显示全部楼层
可以再问一下是谁面的你吗?谢谢!
回复 支持 反对

使用道具 举报

liguanzhu92 发表于 2016-10-1 04:26:32 | 显示全部楼层
表示翻遍了zillow 真的没有看到Software Development Engineer New Grad 。。。
回复 支持 反对

使用道具 举报

owensharon 发表于 2016-10-4 02:14:00 | 显示全部楼层
首先谢谢楼主分享,电面第二题,看上去这个最后的硬币数是定值?
回复 支持 反对

使用道具 举报

 楼主| bearcat001 发表于 2016-10-4 03:21:43 | 显示全部楼层
owensharon 发表于 2016-10-4 02:14
首先谢谢楼主分享,电面第二题,看上去这个最后的硬币数是定值?

嗯,固定的~ :D
回复 支持 反对

使用道具 举报

owensharon 发表于 2016-10-6 06:46:07 | 显示全部楼层
还有啊,楼主你的stringToLong的那个代码,似乎合法输出一直都是正数呀,虽然记录了sign,但是没有用起来呢
回复 支持 反对

使用道具 举报

 楼主| bearcat001 发表于 2016-10-6 07:41:12 | 显示全部楼层
wantanintern 发表于 2016-10-1 04:11
可以再问一下是谁面的你吗?谢谢!

这个我也不记得了 0 - 0
回复 支持 反对

使用道具 举报

 楼主| bearcat001 发表于 2016-10-6 07:41:39 | 显示全部楼层
owensharon 发表于 2016-10-6 06:46. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
还有啊,楼主你的stringToLong的那个代码,似乎合法输出一直都是正数呀,虽然记录了sign,但是没有用起来呢

0 - 0 你这么一说,好像是... 奇怪,我好像没有在最后处理
回复 支持 反对

使用道具 举报

weisooong 发表于 2016-10-6 13:11:54 | 显示全部楼层
楼主麻烦问一下oa做完多久收到电面邀请的?
回复 支持 反对

使用道具 举报

 楼主| bearcat001 发表于 2016-10-7 01:32:14 | 显示全部楼层
weisooong 发表于 2016-10-6 13:11
楼主麻烦问一下oa做完多久收到电面邀请的?

不是很久,应该一周内吧
回复 支持 反对

使用道具 举报

weisooong 发表于 2016-10-7 05:21:42 | 显示全部楼层
bearcat001 发表于 2016-10-7 01:32
不是很久,应该一周内吧

多谢! 字数字数
回复 支持 反对

使用道具 举报

wantanintern 发表于 2016-10-10 03:37:32 | 显示全部楼层
求问lz,电面第一题string是只有那三种形式的吗?谢谢!
回复 支持 反对

使用道具 举报

 楼主| bearcat001 发表于 2016-10-10 06:48:25 | 显示全部楼层
wantanintern 发表于 2016-10-10 03:37
求问lz,电面第一题string是只有那三种形式的吗?谢谢!

是的~ 面试官说怎么简单怎么来
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-8-22 09:49

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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