May 2009 - May 2017 论坛八周年-你的足迹,我的骄傲


一亩三分地论坛

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

一亩三分地官方iOS手机应用下载
查看: 5429|回复: 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. }
  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) {. visit 1point3acres.com for more.
  6.             throw new Exception("Invalid number.");
  7.         }
  8.         long result = 0;
  9.         int len = str.length();
  10.         boolean isPositive = true;
  11.         int start = 0; // first number

  12.         // check sign. 鍥磋鎴戜滑@1point 3 acres
  13.         if (str.charAt(start) == '+') {
  14.             isPositive = true;
  15.             start++;. visit 1point3acres.com for more.
  16.         } else if (str.charAt(start) == '-') {
  17.             isPositive = false;
  18.             start++;
  19.         }

  20.         // check if valid. Waral 鍗氬鏈夋洿澶氭枃绔,
  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.                     }. 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.
  5. For example, suppose I added the following nodes to the tree in this order: 5, 4, 9, 5, 7, 2, 2.-google 1point3acres
  6. The resulting tree would look like this:
  7.     5
  8.   / | \. from: 1point3acres.com/bbs
  9. 4  5  9
  10. /     /
  11. 2   7
  12. | 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  13. 2
复制代码
  1. /* PLEASE DO NOT UNCOMMENT THIS BLOCK
  2. . from: 1point3acres.com/bbs
  3. import java.io.IOException;
  4. import java.io.BufferedWriter;
  5. import java.io.FileWriter;
  6. import java.util.*;
  7. // No other imports are permitted
  8. . 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  9. // The following definitions of Tree and Node are provided.
  10. // insert and delete will be methods of class Tree.

  11. public class Tree {
  12.     private class Node {
  13.         private int val;
  14.         private Node left = null;
  15.         private Node right = null;
  16.         private Node mid = null;

  17.         public Node(int val) {
  18.             this.val = val;
  19.         }
  20.     }

  21.     private Node root;
  22. */

  23.     /*
  24.      * Please complete this method.. 1point3acres.com/bbs
  25.      * Inserts val into the tree.
  26.      */. 1point 3acres 璁哄潧
  27.     public void insert(int val) {. 1point 3acres 璁哄潧
  28.         if (root == null) {
  29.             root = new Node(val);
  30.             return;
  31.         }

  32.         insert(root, val);
  33.     }
  34. . 鍥磋鎴戜滑@1point 3 acres
  35.     private void insert(Node root, int val) {
  36.         if (root == null) {
  37.             return;
  38.         } else if (root.val == val) {
  39.             Node curr = root;
  40.             while (curr.mid != null) {
  41.                 curr = curr.mid;
  42.             }
  43.             curr.mid = new Node(val);
  44.         } else if (root.val > val) {
  45.             if (root.left != null) {
  46.                 insert(root.left, val);
  47.             } else {. from: 1point3acres.com/bbs
  48.                 root.left = new Node(val);
  49.             }
  50.         } else if (root.val < val) {.1point3acres缃
  51.             if (root.right != null) {
  52.                 insert(root.right, val);
  53.             } else {
  54.                 root.right = new Node(val);
  55.             }. 鍥磋鎴戜滑@1point 3 acres
  56.         }.1point3acres缃
  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) {
  71.             // delete mid
  72.             if (root.mid != null) {
  73.                 root.mid = delete(root.mid, val);. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  74.             } else if (root.right != null) {. 1point3acres.com/bbs
  75.                 // get most left-bottom one from right subtree
  76.                 Node curr = root.right;
  77.                 while (curr.left != null) {
  78.                     curr = curr.left;
  79.                 }. visit 1point3acres.com for more.
  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.         return root;
  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
楼主,你的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
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 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
谢谢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.1point3acres缃
还有啊,楼主你的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.鏈枃鍘熷垱鑷1point3acres璁哄潧
楼主麻烦问一下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 下一条

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

custom counter

GMT+8, 2017-5-30 13:44

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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