工业界资深数据科学家现场教你修改求职简历
小K现场教你修改求职简历

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投
内推多家公司面试
坐标湾区
DreamCraft创始团队
招聘游戏开发工程师
游戏初创公司招聘工程师、UIUX Designer和游戏策划
高效直聘+内推,70%面试率
AI帮你免费完善简历
直击全美十万个科技职位
把贵司招聘信息放这里
查看: 2719|回复: 24
收起左侧

小众lyft昂赛

[复制链接] |试试Instant~
我的人缘0
volibear 发表于 2017-12-7 02:20:45 | 显示全部楼层 |阅读模式
本楼: 【顶】   100% (2)
 
 
0% (0)   【踩】
全局: 顶  100% (16)
 
 
0% (0)  踩

2017(10-12月) 码农类General 硕士 全职@Lyft - 猎头 - Onsite  | Fail | 在职跳槽

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

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

x
Lyft三番onsite. 一亩-三分-地,独家发布

1. 90分钟coding, 其实是15分钟提问, 60分钟coding, 15分钟讨论,阿三面试官。 题目和这个面经里的一样。 http://www.1point3acres.com/bbs/ ... &highlight=lyft. 1point3acres
但是要求实现block和rollback功能, 可以做到nested block。评分标准时correct 50%, readable 40%, performance 10%。
2. Design 犹太小哥,大概讨论了下我之前做的项目, 延伸到如何设计no sql schema来做一些简单的sql query, 顺便给小哥科普了下dynamodb是如何实现locking的, eventually consistence背后是怎么实现的。
3. coding 莉蔻露撒啊
. 1point3acres
recruiter反馈说是第一轮做的不好, 没做完(???), 有bug(...),没unit test(这个当时明确问了面试官,说unit test没必要)。 其实这一轮对不同programming language很不公平,用java的话code会很多, 而且各种exception check, read file也要考虑很多。 . visit 1point3acres for more.
整体而言lyft还是看着很轻松的, 但里面的问题也很多, 设计的时候和小哥讨论了下lyft的structure,感觉很多部分都十分的不scallable,以后data migration/refator会是个长久的问题, 应该当年的工程师们也没能想到发展这么快吧。. 留学申请论坛-一亩三分地

最后求个大米. 留学申请论坛-一亩三分地

评分

参与人数 5大米 +19 收起 理由
BlackPen + 3 很有用的信息!
lee2009jian + 5 很有用的信息!
Effiel + 3 给你点个赞!
yikehongxin + 5 给你点个赞!
sunsun123987 + 3 给你点个赞!

查看全部评分


上一篇:高盛HIREVUE
下一篇:BB 昂塞
我的人缘0
johnnywsd 发表于 2017-12-13 14:32:47 | 显示全部楼层
本楼: 【顶】   100% (2)
 
 
0% (0)   【踩】
全局: 顶  100% (25)
 
 
0% (0)  踩
  1. # -*- coding=utf-8 -*-
  2. . visit 1point3acres for more.
  3. """
  4. http://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=300294&highlight=lyft
  5. http://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=308308&highlight=lyft. 1point3acres

  6. (1)Programming test,写一个in memory database,其实就是封装一个hashmap,支持get,set,unset,也要支持一个叫numwithvalue的API,就是统计某个value有几个key. Waral 博客有更多文章,
  7. 但是要求实现block和rollback功能, 可以做到nested block。评分标准时correct 50%, readable 40%, performance 10%。
  8. """. 1point 3acres 论坛
  9. from contextlib import contextmanager


  10. class Database(object):
    . from: 1point3acres
  11.     def __init__(self):
  12.         self._data = {}.1point3acres网
  13.         self._in_block = False
  14.         self._rollback_segment_stack = []. 1point3acres

  15.     def get(self, key):
  16.         return self._data[key]

  17.     def set(self, key, value):
  18.         try:
  19.             orig = key, self._data[key]
  20.         except KeyError:
  21.             orig = None
  22.         self._update_rollback('set', (key, value), orig). 留学申请论坛-一亩三分地
  23.         self._data[key] = value

  24.     def unset(self, key):
  25.         orig = key, self._data.pop(key). 1point3acres
  26.         self._update_rollback('unset', None, orig)

  27.     def num_with_value(self, val):
  28.         count = 0
  29.         for _, v in self._data.iteritems(): 来源一亩.三分地论坛.
  30.             if v == val:
  31.                 count += 1
  32.         return count

  33.     def _update_rollback(self, op, new, orig):
  34.         if self._in_block:
  35.             rollback_segment = self._rollback_segment_stack[-1]
  36.             if op == 'set':
  37.                 if orig is None:. more info on 1point3acres
  38.                     key = new[0]
  39.                     rollback_segment.append(('unset', (key, )))
  40.                 else:. Waral 博客有更多文章,
  41.                     rollback_segment.append(('set', orig))
  42.             elif op == 'unset':
  43.                 rollback_segment.append(('set', orig))

  44.     def _rollback(self):
  45.         rollback_segment = self._rollback_segment_stack[-1]
  46.         for op, args in rollback_segment:
  47.             getattr(self, op)(*args)

  48.     @contextmanager
  49.     def block(self): 来源一亩.三分地论坛.
  50.         self._log = []
  51.         rollback_segment = []
  52.         self._rollback_segment_stack.append(rollback_segment).留学论坛-一亩-三分地
  53.         self._in_block = True
  54.         try:
  55.             yield
  56.         except Exception as e:. 留学申请论坛-一亩三分地
  57.             self._in_block = False
  58.             self._rollback(). 牛人云集,一亩三分地
  59.         finally:
  60.             self._rollback_segment_stack.pop()
  61.             self._in_block = False


  62. import unittest

  63. class Test(unittest.TestCase):. more info on 1point3acres
  64.     def test_1(self):
  65.         db = Database()
  66.         with db.block():
  67.             db.set('a', 10)
  68.             db.set('b', 20). 留学申请论坛-一亩三分地
  69.             db.unset('b')
  70.         actual = db.num_with_value(10)
  71.         expect = 1
  72.         self.assertEqual(actual, expect)

  73.     def test_2(self):
  74.         db = Database()
  75.         with db.block():
  76.             db.set('a', 10)
  77.             raise
  78.         actual = db.num_with_value(10)
  79.         expect = 0. 1point3acres
  80.         self.assertEqual(actual, expect)

  81.     def test_3(self):
  82.         db = Database(). 留学申请论坛-一亩三分地
  83.         with db.block(): 来源一亩.三分地论坛.
  84.             db.set('a', 10)
  85.             db.set('b', 20)
    来源一亩.三分地论坛.
  86.             db.set('a', 20)
  87.             actual = db.num_with_value(20)
  88.             expect = 2
  89.             self.assertEqual(actual, expect)
  90.             raise
  91.         actual = db.num_with_value(20)
  92.         expect = 0
  93.         self.assertEqual(actual, expect)

  94.     def test_nested_block(self):
  95.         db = Database()
  96.         with db.block():
  97.             db.set('a', 10)
  98.             db.set('b', 20)
  99.             db.set('a', 20)
  100.             with db.block():
  101.                 db.set('a', 20)
  102.                 db.set('b', 20)
  103.                 db.set('c', 20).本文原创自1point3acres论坛
  104.                 db.set('d', 20)
  105.                 actual = db.num_with_value(20)
  106.                 expect = 4
  107.                 self.assertEqual(actual, expect)
  108.                 raise
  109.             actual = db.num_with_value(20)
  110.         expect = 2
  111.         self.assertEqual(actual, expect)

  112. if __name__ == '__main__':
  113.     unittest.main(verbosity=2)

复制代码
回复

使用道具 举报

我的人缘0
 楼主| volibear 发表于 2017-12-13 03:33:44 | 显示全部楼层
本楼: 【顶】   100% (1)
 
 
0% (0)   【踩】
全局: 顶  100% (16)
 
 
0% (0)  踩
kqxqx 发表于 2017-12-13 01:03. 一亩-三分-地,独家发布
block/rollback是不是这样的意思:
. 留学申请论坛-一亩三分地
BLOCK --> mark beginning of the block

有顺序, 我当时用的是nested list,就是每次有block就加一个list在最后,有操作就加在这个list里,去除就删掉最后一个,其实用stack比较好。我有工作经验。
回复

使用道具 举报

我的人缘0
kqxqx 发表于 2017-12-13 01:03:02 | 显示全部楼层
本楼: 【顶】   100% (1)
 
 
0% (0)   【踩】
全局: 顶  100% (40)
 
 
0% (0)  踩
volibear 发表于 2017-12-9 11:48
要支持numwithvalue。我用的map实现, 那个block是还要实现commit功能, 就是commit就结束block, rollba ...

block/rollback是不是这样的意思:. from: 1point3acres

BLOCK --> mark beginning of the block
X         --> do operation X: set/unset
Y         --> do operation Y: set/unset
...
COMMIT --> mark end of the block

BLOCK --> mark beginning of the block
. 留学申请论坛-一亩三分地X         --> do operation X: set/unset
Y         --> do operation Y: set/unset
...
ROLLBACK --> mark end of the block, and reverse operation X, Y, ...
. from: 1point3acres
rollback的时候有顺序要求么?也就是说,rollback是用queue还是stack实现?感觉这个功能实现起来好复杂啊
. 牛人云集,一亩三分地
用c++实现代码量也会很大
回复

使用道具 举报

我的人缘0
 楼主| volibear 发表于 2017-12-9 11:48:56 | 显示全部楼层
本楼: 【顶】   100% (1)
 
 
0% (0)   【踩】
全局: 顶  100% (16)
 
 
0% (0)  踩
hot13399 发表于 2017-12-7 02:39
楼主能讲一下 programming 吗?是在这道题的基础上再加 实现block和rollback功能吗? 请问block的意思是不 ...
. 围观我们@1point 3 acres
要支持numwithvalue。我用的map实现, 那个block是还要实现commit功能, 就是commit就结束block, rollback就结束block同时reverse所有操作(set/unset),block本身已然可以进行所有操作。lyft是用go和python,我当时java还设计了interface,enum, exception handling. 现在觉得面试官们应该对java也并不熟悉啊,可能这些完全不care吧.
回复

使用道具 举报

我的人缘0
hot13399 发表于 2017-12-7 02:39:05 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  73% (91)
 
 
26% (33)  踩
楼主能讲一下 programming 吗?是在这道题的基础上再加 实现block和rollback功能吗? 请问block的意思是不是加一个标签,为true就不能set了? 写一个in memory database,其实就是封装一个hashmap,支持get,set,unset,也要支持一个叫numwithvalue的API,就是统计某个value有几个key
回复

使用道具 举报

我的人缘0
森林火柴 发表于 2017-12-7 08:07:57 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (7)
 
 
0% (0)  踩
一定要举报一面的烙印,太坑了
回复

使用道具 举报

我的人缘0
kqxqx 发表于 2017-12-8 00:24:15 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (40)
 
 
0% (0)  踩
第三轮的coding是李特口德 鹿散妖 还是 鹿散 啊?
回复

使用道具 举报

我的人缘0
 楼主| volibear 发表于 2017-12-9 11:39:27 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (16)
 
 
0% (0)  踩
kqxqx 发表于 2017-12-8 00:24.留学论坛-一亩-三分地
第三轮的coding是李特口德 鹿散妖 还是 鹿散 啊?

陆散耳
紫薯紫薯紫薯

With React+D3v4 you'll learn the basics of building fast data visualization components in about an hour.


回复

使用道具 举报

我的人缘0
dabaomiaomiao 发表于 2017-12-9 13:22:31 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  0% (0)
 
 
0% (0)  踩
请问楼主,programming test那题需要实现多线程吗?
回复

使用道具 举报

我的人缘0
sterlanUSA 发表于 2017-12-10 10:45:10 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  100% (3)
 
 
0% (0)  踩
volibear 发表于 2017-12-9 11:48.留学论坛-一亩-三分地
要支持numwithvalue。我用的map实现, 那个block是还要实现commit功能, 就是commit就结束block, rollba ...
. visit 1point3acres for more.
能说一下block 和rollback 是不是以API形式出现的?也就是block(...) 可以看做是一个transaction执行一系列set/unset操作。 Rollback 应该是把一个transaction 的每个操作用stack cache起来,再倒叙执行对应的操作?

另外可否解释下nested block, 是给每个key 都assign一个锁这样block()中可以再call block()? 谢谢。

补充内容 (2017-12-10 11:02):
commit 或rollbacks是不是根据在执行block(...)中是否出错,如遇到exception就rollback, otherwise commit。

另外nested block是否不考虑parallelism, 只考虑nested.  这样的话只要cache已经执行的cmd就可以了。
. 1point3acres
补充内容 (2017-12-12 17:23):
想了一下,是不是这样的一个input 文件:
. more info on 1point3acres
BLOCK. 一亩-三分-地,独家发布
SET k1 v1
SET k2 v2
COMMIT
GET k1
BLOCK
UNSET k2. 牛人云集,一亩三分地
COMMIT
GET k1
BLOCK
SET k3 v3
SET k4 v4
ROLLBACK
GET k2
回复

使用道具 举报

我的人缘0
Wingszero 发表于 2017-12-10 11:23:16 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  87% (65)
 
 
12% (9)  踩
LZ拿到onsite已经很不错了,我过了两轮店面结果HR说interview performance很好,但是不够match position。。。逗我玩呢。
回复

使用道具 举报

我的人缘0
tree666 发表于 2017-12-10 11:39:52 | 显示全部楼层
本楼: 【顶】   0% (0)
 
 
0% (0)   【踩】
全局: 顶  96% (52)
 
 
3% (2)  踩
请问楼主面的是lyft的什么职位?
回复

使用道具 举报

游客
请先登录

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

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

GMT+8, 2018-10-21 16:57

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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