【通知】7月22,工业界资深数据科学家教你破解各大公司面试!


一亩三分地论坛

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

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

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. }. 1point 3acres 璁哄潧
  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.      */
  4.     static long parseLong(String str) throws Exception {
  5.         if (str == null || str.length() == 0) {
  6.             throw new Exception("Invalid number.");
  7.         }. Waral 鍗氬鏈夋洿澶氭枃绔,
  8.         long result = 0;
  9.         int len = str.length();
  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)) {
  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.                 }
  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.                     }. from: 1point3acres.com/bbs
  38.                 }
  39.                 result = result * 10;
  40.                 result += (long) (c - '0');
  41.             } else {
  42.                 throw new Exception("Invalid number.");
  43.             }
  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.
    . 鍥磋鎴戜滑@1point 3 acres
  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:. 1point 3acres 璁哄潧
  7.     5. 1point3acres.com/bbs
  8.   / | \
  9. 4  5  9
  10. /     /
  11. 2   7
  12. |
  13. 2
复制代码
  1. /* PLEASE DO NOT UNCOMMENT THIS BLOCK. more info on 1point3acres.com

  2. import java.io.IOException;
  3. import java.io.BufferedWriter;
  4. import java.io.FileWriter;
  5. import java.util.*;.1point3acres缃
  6. // No other imports are permitted

  7. // The following definitions of Tree and Node are provided.. more info on 1point3acres.com
  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.         public Node(int val) {
  16.             this.val = val; 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  17.         }
  18.     }

  19.     private Node root;
  20. */
  21. . 鍥磋鎴戜滑@1point 3 acres
  22.     /*
  23.      * Please complete this method.
  24.      * Inserts val into the tree.
  25.      */
  26.     public void insert(int val) {. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  27.         if (root == null) {
  28.             root = new Node(val);
  29.             return;
  30.         }

  31.         insert(root, val);. 1point 3acres 璁哄潧
  32.     }

  33.     private void insert(Node root, int val) {
  34.         if (root == null) {
  35.             return;
  36.         } else if (root.val == val) {
  37.             Node curr = root;
  38.             while (curr.mid != null) {
  39.                 curr = curr.mid;
  40.             }
    . 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  41.             curr.mid = new Node(val);
  42.         } else if (root.val > val) {
  43.             if (root.left != null) {
  44.                 insert(root.left, val);
  45.             } else {. 1point3acres.com/bbs
  46.                 root.left = new Node(val);
  47.             }
  48.         } else if (root.val < val) {
  49.             if (root.right != null) {
  50.                 insert(root.right, val);
  51.             } else {
  52.                 root.right = new Node(val);
  53.             }
  54.         }
  55.     }

  56.     /*-google 1point3acres
  57.      * Please complete this method.
  58.      * Deletes only one instance of val from the tree.
  59.      * If val does not exist in the tree, do nothing..1point3acres缃
  60.      */.鐣欏璁哄潧-涓浜-涓夊垎鍦
  61.     public void delete(int val) {. 鍥磋鎴戜滑@1point 3 acres
  62.         root = delete(root, val);
  63.     }
  64. . 1point 3acres 璁哄潧
  65.     private Node delete(Node root, int val) {
  66.         if (root == null) {
  67.             return root;. more info on 1point3acres.com
  68.         }
  69.         if (root.val == val) {
  70.             // delete mid
  71.             if (root.mid != null) {
  72.                 root.mid = delete(root.mid, val);. visit 1point3acres.com for more.
  73.             } else if (root.right != null) {. 1point3acres.com/bbs
  74.                 // get most left-bottom one from right subtree
  75.                 Node curr = root.right;
  76.                 while (curr.left != null) {
  77.                     curr = curr.left;
  78.                 }
  79.                 int smallest = curr.val;
  80.                 root.val = smallest;
  81.                 root.right = delete(root.right, smallest);
  82.             } else { // replace root with it's left
  83.                 root = root.left;. 鍥磋鎴戜滑@1point 3 acres
  84.             }
  85.         } else if (root.val > val) {
  86.             root.left = delete(root.left, val);
  87.         } else if (root.val < val) {
  88.             root.right = delete(root.right, val);
  89.         }
  90. . From 1point 3acres bbs
  91.         return root;. from: 1point3acres.com/bbs
  92.     }
复制代码
电面
第一题是把一个string变成float,string表示形式为
"-5"    => -5.0
"3/4"  => 0.75
"1 3/4"  => 1.75  

第二题是一个机器人,在一个matrix里面从左上角到右下角(只能向右或者向下),每个格子有硬币,求最后能拿到的最大硬币值.鐣欏璁哄潧-涓浜-涓夊垎鍦



评分

2

查看全部评分

janice0613 发表于 2016-9-30 02:13:15 | 显示全部楼层
关注一亩三分地公众号:
Warald_一亩三分地
楼主,你的zillow内推了多收到的确认邮件呢?
回复 支持 反对

使用道具 举报

 楼主| bearcat001 发表于 2016-9-30 02:25:06 来自手机 | 显示全部楼层
关注一亩三分地微博:
Warald
janice0613 发表于 2016-9-30 02:13. visit 1point3acres.com for more.
楼主,你的zillow内推了多收到的确认邮件呢?
. from: 1point3acres.com/bbs
我记得没太久,应该一周?
回复 支持 反对

使用道具 举报

忆梦前尘 发表于 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
Software Development Engineer New Grad
是内推人帮我选的~

完蛋了。。。。现在已经没有了。。。
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| bearcat001 发表于 2016-10-1 02:28:56 | 显示全部楼层
wantanintern 发表于 2016-10-1 01:54
谢谢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,但是没有用起来呢
. more info on 1point3acres.com
0 - 0 你这么一说,好像是... 奇怪,我好像没有在最后处理
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| bearcat001 发表于 2016-10-7 01:32:14 | 显示全部楼层
weisooong 发表于 2016-10-6 13:11. 1point3acres.com/bbs
楼主麻烦问一下oa做完多久收到电面邀请的?
. 1point3acres.com/bbs
不是很久,应该一周内吧
回复 支持 反对

使用道具 举报

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-7-22 05:00

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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