一亩三分地

 找回密码 注册账号

扫描二维码登录本站

BBS
指尖新闻
Offer多多
Salarytics
Learn
Who's Hiring?
疫情动态
Instant
客户端
微信公众号
扫码关注公众号
留学申请公众号
扫码关注留学申请公众号
Youtube频道
留学博客
关于我们
查看: 563|回复: 3
收起左侧

罗布勒克斯 vo

[复制链接] |试试Instant~ |roblox, 码农类general, 美国面经, 面试经验
地里的匿名用户
地里的匿名用户  发表于 2020-5-29 04:41:11 |阅读模式
本楼: 👍   0% (0)
 
 
0% (0)   👎

2020(4-6月) 码农类General 硕士 全职@roblox - 网上海投 - Onsite 视频面试  | Fail/Rej | 在职跳槽

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

您需要 登录 才可以下载或查看,没有帐号?注册账号

x
上个月面的他们家,很想去但最后没给offer

技术面三轮 两轮coding一轮design
coding 1
weighted random number generator

subarray sum equals to k

design
design license id system 设计一个validate license id的系统,要记录这个license在那几台电脑上安装过产品,超过上限的话即不能再register新设备
注意application端要及时回复license id是否valid  更新install count的时候可以异步
还问了一下如何sharding  以及有人恶意暴力破解license id的话 如何限流

coding 2
compress strings
题目及我的答案留在下面
[Python] 纯文本查看 复制代码
# list of string
# 
# 
# lower case letters
# ["work", "word", "internal", "inteanal","integer", "apple",...]
# 
# ["w2k", "w2d", "i6l", "i6l","i5r","a3e",...]
#                "internal". "interval"
# "age" "me"
# "internal". "interval", "intercal"
# "internal
import collections
# "internal". "interval", "intercal" n of k length

# getDistinctKey O(k * n)

#  intern
def compressString(strs):
    def compress(s):
        if len(s) <= 3:
            return s
        return s[0] + str(len(s)-2) + s[len(s)-1]
    
    def getDistinctKey(strs):
        i = 1
        ans = []
        lth = len(strs[0])
        while i< lth:
            tmp = []
            hmap = collections.defaultdict(list)
            for s in strs:
                cc = str(s[:i] + compress(s[i:]) )
                # print("this is "+  cc)
                hmap[ cc ].append(s)
            for key in hmap:
                if len(hmap[key]) == 1:
                    ans.append(key)
                else:
                    tmp += hmap[key]
            if not len(tmp):
                break
            strs = tmp
                
            i += 1
        return ans
    
    #return str[]
    dic = collections.defaultdict(list)
    for s in strs:
        dic[compress(s) ].append(s)
    
    ans = []
    for key in dic:
        if len(dic[key]) == 1:
            ans.append(key)
        else: #case of ["internal". "interval", "intercal"]
            ans += getDistinctKey(dic[key])
            
    return ans
    
strs = ["work", "word", "internal", "inteanal", "interval", "intercal" ,"integer", "apple"]
print(compressString(strs) )



未加阅读限制 求大米!

评分

参与人数 4大米 +15 收起 理由
ChristineDD + 1 给你点个赞!
itssybruce + 1 很有用的信息!
sdaijt + 1 给你点个赞!
清道神君 + 12

查看全部评分


上一篇:热带雨林电面
下一篇:新鲜ebay电面面经
我的人缘0
nanna_chen 2020-5-29 17:11:19 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   100% (9)
 
 
0% (0)    👎
compress string那題看不太懂
為什麼你的code輸出的是
['intea2l', 'intercal', 'internal', 'interval', 'w2d', 'i5r', 'w2k', 'a3e']

為什麼不是['i5l', 'i6l', ...]
謝謝
回复

使用道具 举报

地里的匿名用户
地里的匿名用户  发表于 2020-5-30 02:16:24
本楼: 👍   0% (0)
 
 
0% (0)   👎
本帖最后由 匿名 于 2020-5-30 02:18 编辑
nanna_chen 发表于 2020-5-29 17:11
compress string那題看不太懂
為什麼你的code輸出的是
['intea2l', 'intercal', 'internal', 'interval', ...

奥  意思是说 如果遇到直接压缩后会重复的 string 要找到它们第一位不同的char,从那里开始压缩
比如 'waffle', 'waddle' => 'waf2e', 'wad2e'
而像这样的case, 第一位不同的char再往后可压缩的范围只有一位,便不压缩,因为'intercal' => 'intern1l' 长度都是8,再压缩没有意义。
'intercal', 'internal', 'interval' => 'intercal', 'internal', 'interval'
回复

使用道具 举报

我的人缘0
Huangxin 2020-6-6 07:14:11 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   94% (130)
 
 
5% (8)    👎
HR有没有反馈挂在哪里了?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

隐私提醒:
■为防止被骚扰甚至人肉,不要公开留微信等联系方式,请以论坛私信方式发送。
■特定版块可以超级匿名:https://pay.1point3acres.com/tools/thread
■其他版块匿名方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

手机版|||一亩三分地

GMT+8, 2020-7-8 23:39

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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