一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投,内推多家公司面试
Airbnb 数据科学职位
in analytics and inference
游戏初创公司
招聘工程师、Designer和游戏策划
游戏初创公司DreamCraft招聘工程师、UIUX Designer和游戏策划
把贵司招聘信息放这里
查看: 2938|回复: 8
收起左侧

[找工就业] 6Sense Onsite

[复制链接] |试试Instant~ |关注本帖
gaocan1992 发表于 2016-9-30 12:05:29 | 显示全部楼层 |阅读模式

2016(7-9月)-[14]CS硕士+<3个月短暂实习/全职 - 网上海投| 码农类全职@6Sensefresh grad应届毕业生

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

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

x
今天一大早坐Caltrain去SF进行onsite,吃了一个不错的早餐三明治然后公司超级低调的大门,进去以后还被大狗欢迎了一下。
Onsite一共四轮,和G家差不多。. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
第一轮
华裔Co-Founder,出了一个XML Parser:就是比如<xml><nodeA>AA</nodeA><nodeB>BB</nodeB></xml>
然后要生成一个树状结构,root是xml,两个子节点nodeA和nodeB,nodeA子节点AA,nodeB子节点BB。第一反应就是stack,但是早上太困了,stack里面的什么时候push什么时候pop的条件都想不到,隐约觉得和验证括号,模拟计算器什么的差不多。然后想了一会脑抽突然想先写recursion版本的,后来发现recursion更难得想。就被引导先做stack,然后脑子好了想出来了,但是各种漏小条件然后在各种帮助下写出来了。(证明早上第一场以后还是要多加练习怎么快速进入状态). from: 1point3acres.com/bbs
第二轮
烙印Engineer不记得什么岗位了,问题是一个雇员和经理的列表
emp mag
1     -
2     1
3     1
4     2
5     4
那么1就是ceo,因为没有manager. 1point 3acres 璁哄潧
然后打印结果
1
-2. 1point3acres.com/bbs
--4
---5
--3
一开始脑抽了想复杂了,以为是topological sort写了个bfs版本的,后来发现就dfs就好了,传一个level参数。
不过之前先把所有的关系存一个hashmap <id, list<id>>这种结构就好。
第三轮
烙印Data Science组貌似,好像无精打采的样子。先出了个题目给你一些point,然后返回能组成的正方形个数。
我第一反应就是弄个hashmap存x坐标和一个list of y坐标,然后检查的时候我先提出hash表要不要来个order。烙印说不需要order不需要额外空间,然后hint了一下。
我发现只要for循环两次hashmap第一个x1,第二个x2,x2 < x1就好了,然后我还要对map.get(x1)再for循环y1, y2(y2 < y1)然后看看在不在map.get(x2)里面,然后说一下可以不用list用set优化。(还忘记了要检查x1 - x2 == y1 - y2)。面试官说可以优化,少一个for循环,于是想出来找到y1, y2就看看x1 - (y1 - y2)在不在map里先就好了不需要循环x2。. From 1point 3acres bbs
第二道题目是Unique Path2我就背书了,然后还展示了下滚动数组烙印看了一下看懂了就默默的走了。
第四轮
烙印CTO,很友好。出了一道data structure design的题目。就是webpage里面ctrl+F查找的时候怎么样设计一个数据结构可以马上知道哪些地方需要highlight。. from: 1point3acres.com/bbs
我先抛弃了单纯的hashmap,trie啥的因为我说没办法build。然后人品爆发想到了hasmap<Chracter, List<Integer>>存每个字符的occurrence然后优化一下list变成set。
但是还是没有到达O(length)最后想了想要不map<char, map<int, chat>>这样,然后走了走发现不对,CTO就直接提示我可以反过来<char, map<char, list<int>>这样就可以了然后我表示佩服。. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
其他时间就是谈一谈,提提问题什么的然后午饭一个小哥带去旁边餐厅吃了很healthy的food。

感觉这家工程狮是很多伯克利的,然后HR说喜欢招华大的学生但是华大的不愿意来哈哈哈,应该bar还是挺高的。估计要挂了,move on。。。


补充内容 (2016-9-29 20:06):
晚上G家说HC挂了,人艰不拆啊。。。满怀希望,又失业了

补充内容 (2016-9-29 20:06):
晚上G家说HC挂了,人艰不拆啊。。。满怀希望,又失业了

补充内容 (2016-10-7 18:35):
补充一下新情况:给了offer还没谈option

评分

1

查看全部评分

youto 发表于 2016-9-30 12:40:21 | 显示全部楼层
他家好高大上,都是级别比较硬的人来面试
回复 支持 反对

使用道具 举报

 楼主| gaocan1992 发表于 2016-9-30 12:41:09 | 显示全部楼层
youto 发表于 2016-9-29 20:40. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
他家好高大上,都是级别比较硬的人来面试

这一打听我的背景太渣了,感觉要挂
回复 支持 反对

使用道具 举报

sum0mer 发表于 2016-10-22 09:07:54 | 显示全部楼层
gaocan1992 发表于 2016-9-30 12:41
这一打听我的背景太渣了,感觉要挂

请问楼主onsite多久拿到的offer?
回复 支持 反对

使用道具 举报

 楼主| gaocan1992 发表于 2016-10-22 09:08:59 | 显示全部楼层
sum0mer 发表于 2016-10-21 17:07
请问楼主onsite多久拿到的offer?

一周多?
回复 支持 反对

使用道具 举报

sum0mer 发表于 2016-10-22 09:22:51 | 显示全部楼层

好的谢谢
回复 支持 反对

使用道具 举报

noname01 发表于 2016-10-25 07:48:50 | 显示全部楼层
楼主也是uw的吗!
能不能麻烦解释一下第四轮题目 trie为啥不可以啊 以及你解法hashmap里character是key存的是什么啊
回复 支持 反对

使用道具 举报

johnnywsd 发表于 2017-11-15 13:29:20 | 显示全部楼层
  1. # -*- coding: utf-8 -*-

  2. """
  3. http://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=204137&highlight=6sense
  4. 华裔Co-Founder,出了一个XML Parser:就是比如<xml><nodeA>AA</nodeA><nodeB>BB</nodeB></xml>
  5. 然后要生成一个树状结构,root是xml,两个子节点nodeA和nodeB,nodeA子节点AA,nodeB子节点BB。第一反应就是stack,但是早上太困了,stack里面的什么时候push什么时候pop的条件都想不到,隐约觉得和验证括号,模拟计算器什么的差不多。然后想了一会脑抽突然想先写recursion版本的,后来发现recursion更难得想。就被引导先做stack,然后脑子好了想出来了,但是各种漏小条件然后在各种帮助下写出来了。(证明早上第一场以后还是要多加练习怎么快速进入状态). Waral 鍗氬鏈夋洿澶氭枃绔,
  6. """

  7. import re
  8. from collections import deque


  9. class Element(object):
  10.     def __init__(self, val):
  11.         self.val = val
  12.         self.children = []
  13.         self.is_matched = False

  14.     def __repr__(self):
  15.         ret = self.val
  16.         if self.val[0] == '<' and self.val[-1] == '>':
  17.             for child in self.children:
  18.                 ret += repr(child). 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  19.             ret += self.val[:1] + '/' + self.val[1:]
  20.         return ret

  21. 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  22. class Solution(object):. 鍥磋鎴戜滑@1point 3 acres
  23.     OPEN_TAG = 'open_tag'-google 1point3acres
  24.     CLOSE_TAG = 'close_tag'
  25.     TEXT = 'text'

  26.     def parse(self, xml):
  27.         # root = Element(). more info on 1point3acres.com
  28.         stack = []
  29.         self.stack = deque()
  30.         val = ''
  31.         state = self.TEXT
  32.         val = ''. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  33.         for s in xml:. 1point 3acres 璁哄潧
  34.             if s == '<':
  35.                 # do something
  36.                 val, state = self._process_token(val, state). From 1point 3acres bbs
  37.                 state = self.OPEN_TAG
  38.                 val += '<'
  39.             elif s == '/' and state == self.OPEN_TAG:
  40.                 state = self.CLOSE_TAG
  41.                 val += '/'
  42.             elif s == '>':
  43.                 val += '>'-google 1point3acres
  44.                 val, state = self._process_token(val, state)
  45.             else:
  46.                 val += s
  47.         root = self.stack.pop(). From 1point 3acres bbs
  48.         return root

  49.     def _get_open_tag(self, close_tag):
    . visit 1point3acres.com for more.
  50.         return close_tag[:1] + close_tag[2:]
  51. . 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  52.     def _process_token(self, val, state):
  53.         if state == self.TEXT and not val:
  54.             return val, state
  55.         if state == self.OPEN_TAG or state == self.TEXT:. visit 1point3acres.com for more.
  56.             elm = Element(val)
  57.             if state == self.TEXT:
  58.                 elm.is_matched = True
  59.             self.stack.append(elm)
  60.         elif state == self.CLOSE_TAG:
  61.             open_tag = self._get_open_tag(val)
  62.             tag = None
  63.             children = []
  64.             elm = None
  65.             while self.stack:
  66.                 elm = self.stack.pop()
  67.                 if elm.val == open_tag and elm.is_matched is False:
  68.                     break.鐣欏璁哄潧-涓浜-涓夊垎鍦
  69.                 else:
  70.                     children.append(elm). visit 1point3acres.com for more.
  71.             if elm:
    . From 1point 3acres bbs
  72.                 elm.children = children[::-1]
  73.                 elm.is_matched = True
  74.                 self.stack.append(elm)
  75. 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  76.         state = self.TEXT
  77.         val = ''. more info on 1point3acres.com
  78.         return val, state

  79. . visit 1point3acres.com for more.
复制代码


  1. import unittest
  2. from solution import Solution
  3. . more info on 1point3acres.com

  4. class Test(unittest.TestCase):
  5.     def test_1(self):
  6.         sol = Solution()
  7.         xml = "<xml><nodeA>AA</nodeA><nodeB>BB</nodeB></xml>"
  8.         actual = sol.parse(xml)
  9.         self.assertEqual(xml, repr(actual))

  10.     def test_2(self):
  11.         sol = Solution()
  12.         xml = "<xml><nodeA>AA</nodeA><nodeC><nodeB>BB</nodeB></nodeC></xml>"
  13.         actual = sol.parse(xml)
  14.         self.assertEqual(xml, repr(actual))

  15. if __name__ == '__main__':
  16.     unittest.main(verbosity=2)
复制代码

回复 支持 反对

使用道具 举报

johnnywsd 发表于 2017-11-15 13:52:25 | 显示全部楼层
  1. # -*- coding: utf-8 -*-
  2. """
  3. 烙印Engineer不记得什么岗位了,问题是一个雇员和经理的列表. visit 1point3acres.com for more.
  4. emp mag
  5. 1     -. 1point 3acres 璁哄潧
  6. 2     1
  7. 3     1
  8. 4     2-google 1point3acres
  9. 5     4
  10. 那么1就是ceo,因为没有manager
  11. 然后打印结果
  12. 1
  13. -2. 1point3acres.com/bbs
  14. --4
  15. ---5
  16. -3.鐣欏璁哄潧-涓浜-涓夊垎鍦
  17. """


  18. from collections import defaultdict
  19. class OrgChart(object):. 1point3acres.com/bbs
  20.     def __init__(self, relations):
    .鐣欏璁哄潧-涓浜-涓夊垎鍦
  21.         self.graph = defaultdict(list)
  22.         self.ceo = None
  23.         for ee, manager in relations:
  24.             self.graph[manager].append(ee)
  25.             if manager is None:
  26.                 self.ceo = ee. 鍥磋鎴戜滑@1point 3 acres
  27. . from: 1point3acres.com/bbs
  28.     def get_org_chart(self):
  29.         self._ret = []
  30.         self._pre_order(self.ceo, 0)
  31.         return self._ret

  32.     def print_org_chart(self):
  33.         chart = self.get_org_chart()
  34.         lines = []
  35.         for level, ee in chart:
  36.             lines.append('-' * level + str(ee))
  37.         st = '\n'.join(lines). 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  38.         print st

  39.     def _pre_order(self, node, level): 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  40.         if node:. From 1point 3acres bbs
  41.             self._ret.append((level, node)). 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  42.         for child in self.graph[node]:
  43.             self._pre_order(child, level + 1)

  44. .1point3acres缃

复制代码
. 1point 3acres 璁哄潧

  1. import unittest
  2. from solution import OrgChart. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷


  3. class Test(unittest.TestCase):. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  4.     def test_1(self):
  5.         relations = [
  6.             (1, None),. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  7.             (2, 1),
  8.             (3, 1),
  9.             (4, 2),
  10.             (5, 4),-google 1point3acres
  11.         ]. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  12.         org_chart = OrgChart(relations)
  13.         actual = org_chart.get_org_chart()
  14.         print
  15.         org_chart.print_org_chart()
  16.         print actual

  17. if __name__ == '__main__':
  18.     unittest.main(verbosity=2)
复制代码
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2018-1-17 05:51

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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