一亩三分地论坛

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

一亩三分地官方iOS手机应用下载
查看: 2105|回复: 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. /*
  2. * Returns true if the input string is a number and false otherwise. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  3. */
  4. 5410. 鍥磋鎴戜滑@1point 3 acres
  5. . 1point 3acres 璁哄潧
  6. .5
  7. .
  8. ..
  9.   -5.2. Waral 鍗氬鏈夋洿澶氭枃绔,
  10.   -.
    . From 1point 3acres bbs
  11. public boolean isNumber(String toTest)
  12. {. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  13.     bool decimalAppeared = false;
  14.     int negativeIndexShift = 0;
  15.     for(int i =0;i<toTest.length();i++)
  16.     {
  17.         if(toTest[i] == '-' )
  18.         {
  19.             if (i == 0)
  20.             {      
  21.             negativeIndexShift++;. visit 1point3acres.com for more.
  22.                 continue;
  23.             }
    .鏈枃鍘熷垱鑷1point3acres璁哄潧
  24.             else. visit 1point3acres.com for more.
  25.             {
  26.                 return false;
  27.             }. more info on 1point3acres.com
  28.         }
  29.         
  30.         if (toTest[i] == '.' && !decimalAppeared)
  31.         {
  32.             if(i == negativeIndexShift && toTest.length() == 1+negativeIndexShift)
    .鐣欏璁哄潧-涓浜-涓夊垎鍦
  33.             {
  34.                 return false;
  35.             }
  36.             else
  37.             {
  38.                 decimalAppeared = true;
  39.                 continue; 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  40.                
  41.             }.1point3acres缃
  42.         }
  43.          
  44.         if ((toTest[i] > '9' || toTest[i] < '0' ) )
  45.         {
  46.             return false;
  47.         }
  48.     }
  49.     return true;.鏈枃鍘熷垱鑷1point3acres璁哄潧
  50.     // implementation here
  51. }
复制代码
我一上来什么没说就开始了..然后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. }. more info on 1point3acres.com

  10. func helper(input:[NestedInteger]) -> (Int,Int)
  11. {. From 1point 3acres bbs
  12.     var sum:Int = 0;
  13.     var curLevel:Int!;
  14.     for(var i = 0;i<input.count;i++)
  15.     {
  16.         if (input[i].isInteger())
  17.         {
  18.             if curLevel == nil
  19.             {.鏈枃鍘熷垱鑷1point3acres璁哄潧
  20.                  curLevel = 1
  21.             }
  22.             sum += input[i].getInteger()! * curLevel
  23.             
  24.         }
  25.         else
  26.         {
  27.             let res = helper(input[i].getList()!)
  28.             sum += res.first
  29.             curLevel = res.second;
  30.         }
  31.     }. 鍥磋鎴戜滑@1point 3 acres
  32.     return (sum,curLevel+1);
  33. }

  34. . visit 1point3acres.com for more.

  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.     /** @return the single integer that this NestedInteger holds, if it holds a single integer
  43.     * Return null if this NestedInteger holds a nested list */
  44.     func getInteger() -> Int?
  45. . 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  46.     /** @return the nested list that this NestedInteger holds, if it holds a nested list
  47.     * Return null if this NestedInteger holds a single integer */
  48.     func getList() -> [NestedInteger]?
  49. }
复制代码
这道题因为我见过而且也是很straightforward的recursion所以我很快写出来了. 接着interviewer马上改题目: 如果nested integer的level是反过来该怎么写? i.e. {{1,1},2,{1,1}} 里的1的level会是1,2的level会是2. 我紧张了一下改了一下我原有的代码...面完后才想到这个implementation估计只能pass1%的test case吧.. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴


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

评分

2

查看全部评分

johnwen 发表于 2015-10-24 13:07:26 | 显示全部楼层
关注一亩三分地公众号:
Warald_一亩三分地
patpat,我大二的时候也是什么都不懂。。一上来就跪了Google和Facebook。
后面面试的时候就好啦!. 1point3acres.com/bbs

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

使用道具 举报

johnwen 发表于 2015-10-24 13:17:51 | 显示全部楼层
关注一亩三分地微博:
Warald
johnwen 发表于 2015-10-24 13:07
patpat,我大二的时候也是什么都不懂。。一上来就跪了Google和Facebook。
后面面试的时候就好啦!
-google 1point3acres
好吧,自问自答。。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, 2017-4-25 18:12

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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