《数据科学面试40+真题讲解》,K神本年度最后一次开课


一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投,内推你去多家公司面试
Airbnb 数据科学职位
in analytics and inference
天天打游戏、照样领工资,
你要不要来?
把贵司招聘信息放这里
查看: 1133|回复: 5
收起左侧

Zillow online test

[复制链接] |试试Instant~ |关注本帖
Kasey 发表于 2014-12-12 11:49:11 | 显示全部楼层 |阅读模式

2014(10-12月) 码农类 硕士 全职@ - 内推 - 在线笔试 |Other

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

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

x
楼主12月5号收到的online test邮件,8号提交代码.鐣欏璁哄潧-涓浜-涓夊垎鍦
两道题
1 string to long
2 trinary tree delete and insert
  1. public class StringToLong{
  2.        
  3.         private static long stringToLong(String s) {
  4.                 if (s == null || s.length() == 0)        return 0;.鏈枃鍘熷垱鑷1point3acres璁哄潧
  5.                 // trim white space
  6.                 s = s.trim();
  7.                 if(s.length()<1) return 0;
  8.                
  9.                 int length = s.length(), i=0;. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  10.                 // if s starts with '-', the result is negative
  11.                 boolean negative =false;
  12.                 if (s.charAt(0) == '-'){
  13.                         negative = true;. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  14.                         i++;
  15.                 }else if (s.charAt(0) == '+'){
  16.                         i++;
  17.                 }
  18.                                
  19.                 long result = 0; 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  20.                 while (i < length && s.charAt(i) >= '0' && s.charAt(i) <= '9'){
  21.                         //if overflow, return Long.MAX_VALUE or Long.MIN_VLUE Respectively
  22.                         if ((Long.MAX_VALUE/10==result&&Long.MAX_VALUE%10<s.charAt(i))||Long.MAX_VALUE<result){. more info on 1point3acres.com
  23.                                 return negative ? Long.MIN_VALUE:Long.MAX_VALUE;. From 1point 3acres bbs
  24.                         }-google 1point3acres
  25.                         result = result*10 + (s.charAt(i)-'0');. Waral 鍗氬鏈夋洿澶氭枃绔,
  26.                         i++;
  27.                 }               
  28.                 return negative ? -result : result;
  29.         }. 1point 3acres 璁哄潧
  30.        
  31.         public static void test(){
  32.                 long x = stringToLong("    +9223372036854775807");
    鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  33.                 if (x == 9223372036854775807l) {
  34.                         System.out.println("success");
  35.                 } else {
  36.                         System.out.println("failure");
  37.                 }               
  38.         }. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  39.         . Waral 鍗氬鏈夋洿澶氭枃绔,
  40.         public static void main(String[] args) {
  41.                 test();
  42.         }.鐣欏璁哄潧-涓浜-涓夊垎鍦
  43. }
复制代码
  1. class Node{
  2.         Node left;
  3.         Node right;
  4.         Node middle;
  5.         int val;. from: 1point3acres.com/bbs
  6.         Node(int val){
  7.                 this.val = val;
  8.         }       
  9. }

  10. public class TrinaryTree {       
  11.         Node root;. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  12.         public TrinaryTree(){
  13.                 this.root = null;
  14.         }
  15.         public TrinaryTree(Node root){
  16.                 this.root = root;
  17.         }
  18.        
  19.         //insert a value to the appropriate position in the tree. Waral 鍗氬鏈夋洿澶氭枃绔,
  20.         public void insert(int val){.鏈枃鍘熷垱鑷1point3acres璁哄潧
  21.                 if (root != null){
  22.                         root = insert(root, val);
  23.                 }else{
    . more info on 1point3acres.com
  24.                         root = new Node(val);. 1point 3acres 璁哄潧
  25.                 }
  26.         }
  27.        
  28.         public Node insert(Node node, int val){
  29.                 if (node == null){
  30.                         node = new Node(val);.鐣欏璁哄潧-涓浜-涓夊垎鍦
  31.                 }
  32.                 else if(val < node.val){. Waral 鍗氬鏈夋洿澶氭枃绔,
  33.                         node.left = insert(node.left, val);
  34.                 }
  35.                 else if(val == node.val){
  36.                         node.middle = insert(node.middle, val);
  37.                 }. from: 1point3acres.com/bbs
  38.                 else{
  39.                         node.right = insert(node.right, val);
  40.                 }
  41.                 return node;
  42.         }
  43.        
  44.         //delete a value from the tree
  45.         public void delete(int val){
  46.                 root = delete(root, val);
  47.         }
  48.        
  49.         public Node delete(Node node, int val){
  50.                 if (node == null){
  51.       System.out.println("The node "+val+ " doesn't exist");
  52.       return null;
  53.                 }
  54.                 else if (val < node.val){
  55.                         node.left = delete(node.left, val);. 1point3acres.com/bbs
  56.                 }
  57.                 else if (val > node.val){
  58.                         node.right = delete(node.right, val);.1point3acres缃
  59.                 }.鏈枃鍘熷垱鑷1point3acres璁哄潧
  60.                 else{
  61.                         if (node.middle != null){
  62.                                 node.middle = delete(node.middle, val);
  63.                         }
    鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  64.                         else if (node.right != null){
  65.                                 node.val = getMin(node.right).val;
  66.                                 node = delete(node.right, getMin(node.right).val);
  67.                         }
  68.                         else{
  69.                                 node = node.left;
  70.                         }                       
  71.                 }
  72.                 return node;. 1point 3acres 璁哄潧
  73.         }
  74.         // find min as helper function to delete
  75.         private Node getMin(Node node) {
  76.                 if (node != null){
  77.                         while(node.left != null){
  78.                                 node = node.left;
  79.                         }
  80.                 }
  81.                 return node;
  82.         }
  83.         // pre-order traverse the tree and print the value       
  84.         public void print(Node root){
  85.                 if (root == null)        return;.1point3acres缃
  86.                 if (root != null){. from: 1point3acres.com/bbs
  87.                         System.out.println("Node value: "+ root.val);.1point3acres缃
  88.                         print(root.left);
  89.                         print(root.middle);
  90.                         print(root.right);
  91.                 }. 鍥磋鎴戜滑@1point 3 acres
  92.         }
  93.         public void print() {. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  94.                 print(root);. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  95.         }
  96.        
  97.         public static void main(String[] args) {
  98.     TrinaryTree tree = new TrinaryTree();
  99.                 tree.insert(5);. 1point3acres.com/bbs
  100.                 tree.insert(4);. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  101.                 tree.insert(9);
  102.                 tree.insert(5);. from: 1point3acres.com/bbs
  103.                 tree.insert(7);
  104.                 tree.insert(2);
  105.                 tree.insert(2);
  106.                 //preorder traversal, the sequence should be 5422597
  107.                 System.out.println("Preorder traversal: ");
  108.                 tree.print();. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  109.                 tree.delete(5);
  110.                 // the sequence should be 542297
  111.                 System.out.println("After delete 5:");
  112.                 tree.print();
  113.                 // delete a node not exited. From 1point 3acres bbs
  114.                 tree.delete(10);
  115.                 System.out.println("After delete 10:");
  116.         }
  117. }
复制代码
希望后面面试顺利 bless bless!

. Waral 鍗氬鏈夋洿澶氭枃绔,
ki87uj 发表于 2014-12-13 05:30:11 | 显示全部楼层
LZ过了没。。回来给个信。。。
回复 支持 反对

使用道具 举报

迷彩的瓜皮帽 发表于 2014-12-13 07:57:57 | 显示全部楼层
感谢分享,有没有回信呀?
回复 支持 反对

使用道具 举报

dtcxzch 发表于 2014-12-14 15:44:33 来自手机 | 显示全部楼层
第一题我基本模仿API的实现写的。。
回复 支持 反对

使用道具 举报

lyf1989 发表于 2014-12-15 03:57:05 | 显示全部楼层
LZ你的代码过了没?看 glassdoor上面好多人说随即选人
回复 支持 反对

使用道具 举报

flybird1990 发表于 2014-12-18 00:25:31 | 显示全部楼层
LZ, 67行
node = delete(node.right, getMin(node.right).val);.1point3acres缃
是不是应该为
node.right = delete(node.right, getMin(node.right).val);呀
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-11-24 04:50

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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