一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 1499|回复: 5
收起左侧

Linkedin Intern 技术电面面经

[复制链接] |试试Instant~ |关注本帖
oskarzhang 发表于 2015-10-24 05:59:26 | 显示全部楼层 |阅读模式

2016(7-9月) 码农类 本科 实习@Linkedin - 内推 - HR筛选 技术电面 |Fail其他

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

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

x
本人SOPhomore, 被校友内退到Linkedin. 过了不到一个礼拜就收到recruiter的email,但因为有点logistical问题到大概两个礼拜后才打电话做phone screen. 之后就马上schdule了这个礼拜一的电话techinical. 这是我人生第二次电面,依然不知道自己在干嘛,写出了带很多edge case的代码.....今天刚收到recruiter email说not going to move on.
第一个问题很简单:
  1. /*. 1point 3acres 璁哄潧
  2. * Returns true if the input string is a number and false otherwise
  3. */
  4. 5410
    .鏈枃鍘熷垱鑷1point3acres璁哄潧

  5. .5
  6. .
  7. ..
  8.   -5.2. 1point 3acres 璁哄潧
  9.   -.
  10. public boolean isNumber(String toTest)
  11. {
  12.     bool decimalAppeared = false;. Waral 鍗氬鏈夋洿澶氭枃绔,
  13.     int negativeIndexShift = 0;
  14.     for(int i =0;i<toTest.length();i++). from: 1point3acres.com/bbs
  15.     {
  16.         if(toTest[i] == '-' )
  17.         {
  18.             if (i == 0)
  19.             {       .1point3acres缃
  20.             negativeIndexShift++;
  21.                 continue;
  22.             }
  23.             else
  24.             {
  25.                 return false;
  26.             }
  27.         }
  28.         
  29.         if (toTest[i] == '.' && !decimalAppeared)
  30.         {
  31.             if(i == negativeIndexShift && toTest.length() == 1+negativeIndexShift)
  32.             {
  33.                 return false;
  34.             }
  35.             else
  36.             {
  37.                 decimalAppeared = true;. more info on 1point3acres.com
  38.                 continue;.鐣欏璁哄潧-涓浜-涓夊垎鍦
  39.                
  40.             }
  41.         }
  42.          
  43.         if ((toTest[i] > '9' || toTest[i] < '0' ) )
  44.         {. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  45.             return false;
  46.         }
  47.     }
  48.     return true;
  49.     // implementation here
  50. }
复制代码
我一上来什么没说就开始了..然后interviewer告诉我我没有handle的edge case,接着我handle了,接着他又指出新的...就这样来回起码有三四次. 真的非常后悔没有在拿到题目就想好这些东西,还是太noob,这么简单的一题就把我最差的一面展现出来了.
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
第二道题是好像被问很多的nested integer:
  1. /**
  2. * Given a nested list of integers, returns the sum of all integers in the list weighted by their depth
  3. * For example, given the list {{1,1},2,{1,1}} the function should return 10 (four 1's at depth 2, one 2 at depth 1)
  4. * Given the list {1,{4,{6}}} the function should return 27 (one 1 at depth 1, one 4 at depth 2, and one 6 at depth 3)
  5. */
  6. func depthSum(input: [NestedInteger]) -> Int {
  7.     var sum = helper(input);
  8.     // Implementation here 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  9. }
  10. . 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  11. func helper(input:[NestedInteger]) -> (Int,Int)
  12. {. more info on 1point3acres.com
  13.     var sum:Int = 0;
  14.     var curLevel:Int!;
  15.     for(var i = 0;i<input.count;i++)
  16.     {
  17.         if (input[i].isInteger())
  18.         {
  19.             if curLevel == nil
  20.             {
  21.                  curLevel = 1. more info on 1point3acres.com
  22.             }
  23.             sum += input[i].getInteger()! * curLevel
  24.             . from: 1point3acres.com/bbs
  25.         }
  26.         else
  27.         {
  28.             let res = helper(input[i].getList()!). 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  29.             sum += res.first
  30.             curLevel = res.second;
  31.         }
  32.     }
  33.     return (sum,curLevel+1);
  34. }


  35. /**
  36. * This is the interface that represents nested lists.
  37. * You should not implement it, or speculate about its implementation.
  38. */
  39. protocol NestedInteger {

  40.     /** @return true if this NestedInteger holds a single integer, rather than a nested list */
  41.     func isInteger() -> Bool
  42. -google 1point3acres
  43.     /** @return the single integer that this NestedInteger holds, if it holds a single integer
  44.     * Return null if this NestedInteger holds a nested list */
  45.     func getInteger() -> Int?
  46. -google 1point3acres
  47.     /** @return the nested list that this NestedInteger holds, if it holds a nested list
  48.     * Return null if this NestedInteger holds a single integer */
  49.     func getList() -> [NestedInteger]? 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  50. }. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
复制代码
这道题因为我见过而且也是很straightforward的recursion所以我很快写出来了. 接着interviewer马上改题目: 如果nested integer的level是反过来该怎么写? i.e. {{1,1},2,{1,1}} 里的1的level会是1,2的level会是2. 我紧张了一下改了一下我原有的代码...面完后才想到这个implementation估计只能pass1%的test case吧..1point3acres缃


这是我sophomore year拿到的两个interview的最后一个了..现在两个都爆掉了,压力较大

评分

2

查看全部评分

johnwen 发表于 2015-10-24 13:07:26 | 显示全部楼层
patpat,我大二的时候也是什么都不懂。。一上来就跪了Google和Facebook。
后面面试的时候就好啦!

另外求问,第二题的follow up,除了预先算出depth外还有好的方法么
回复 支持 反对

使用道具 举报

johnwen 发表于 2015-10-24 13:17:51 | 显示全部楼层
johnwen 发表于 2015-10-24 13:07
patpat,我大二的时候也是什么都不懂。。一上来就跪了Google和Facebook。
后面面试的时候就好啦!
. 1point 3acres 璁哄潧
好吧,自问自答。。recursive返回sum的同时返回一个depth(和做树的depth一个写法)。先递归,把答案都先加起来,同时比较返回的depth,得到最大的depth,也就是当前深度。再用之前存储的答案乘上深度
回复 支持 反对

使用道具 举报

smallshrimp 发表于 2015-10-29 05:20:34 | 显示全部楼层
觉得应该先得到deepest level,
回复 支持 反对

使用道具 举报

DK_BurNing 发表于 2015-10-31 03:03:03 | 显示全部楼层
reverse weighted Sum = No weighted sum * (deepestLevel + 1) - no-reversed weighted sum
这样的话应该走一次也能做出来。
回复 支持 反对

使用道具 举报

2015fallcser 发表于 2015-11-13 14:23:09 | 显示全部楼层
这是什么语言啊
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

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

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

custom counter

GMT+8, 2016-12-3 02:17

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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