一亩三分地论坛

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

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

Yelp 技术电面

[复制链接] |试试Instant~ |关注本帖
zth198814 发表于 2016-4-14 01:27:08 | 显示全部楼层 |阅读模式

2016(4-6月) 码农类 硕士 全职@Yelp - 网上海投 - 技术电面 |Fail在职跳槽

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

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

x
昨天的skype技术面试,今天就收到了据信。问了20分钟的work experience 和 project(我个人觉得没有答好的地方),然后是20分钟的coding。

# Write a function that takes two arguments, a list of words and an integer n,
# and returns the nth most common word in the list.
#
# e.g.
#    f(['cat', 'dog', 'cat'], 1) => 'cat' (the 1st most common word)
#    f(['cat', 'dog', 'cat'], 2) => 'dog' (the 2nd most common word)
#
奉献给大家

评分

1

查看全部评分

edcent 发表于 2016-4-14 01:52:58 | 显示全部楼层
我也碰到过类似的题. 楼主怎么做的?
回复 支持 反对

使用道具 举报

 楼主| zth198814 发表于 2016-4-14 01:58:33 | 显示全部楼层
edcent 发表于 2016-4-14 01:52
我也碰到过类似的题. 楼主怎么做的?

我用的是python dictionary 网上这种求occurence的问题还是很多的 你可以去搜搜看
回复 支持 反对

使用道具 举报

edcent 发表于 2016-4-14 02:02:09 | 显示全部楼层
zth198814 发表于 2016-4-14 01:58
我用的是python dictionary 网上这种求occurence的问题还是很多的 你可以去搜搜看

果然还是python好用啊!我当时用java写的, 没有什么适合的数据结构..
回复 支持 反对

使用道具 举报

lzb700m 发表于 2016-4-14 11:49:19 | 显示全部楼层
假如有n个单词,返回第k常见的单词:
1. 扫一遍,统计每个单词的频率。
2. 建一个大小为k的minheap,key为频率。
3. 把统计好的单词词频一次放到minheap里。
4. return minheap.extractMin()。
时间复杂度:O(n * logk),空间复杂度O(n)。
回复 支持 反对

使用道具 举报

edcent 发表于 2016-4-14 23:40:41 | 显示全部楼层
lzb700m 发表于 2016-4-14 11:49. 1point3acres.com/bbs
假如有n个单词,返回第k常见的单词:. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
1. 扫一遍,统计每个单词的频率。
2. 建一个大小为k的minheap,key ...

这样 return 回来的是词频吧,不是单词
回复 支持 反对

使用道具 举报

lzb700m 发表于 2016-4-15 04:00:42 | 显示全部楼层
edcent 发表于 2016-4-14 23:40. From 1point 3acres bbs
这样 return 回来的是词频吧,不是单词

词频是key,单词是value。需要取什么都可以。
class wordFrequency implements comparable<wordFrequency>{
  String word;
  Integer count;
  
  @Override
  public int compareTo(wordFrequency other) { 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
    return this.count.compareto(other.count);
  }
}
回复 支持 反对

使用道具 举报

 楼主| zth198814 发表于 2016-8-16 09:22:44 | 显示全部楼层
lzb700m 发表于 2016-4-14 11:49
假如有n个单词,返回第k常见的单词:
1. 扫一遍,统计每个单词的频率。
2. 建一个大小为k的minheap,key ...

你说的是对的。这个题用java写起来比较方便。
回复 支持 反对

使用道具 举报

qiu_cqupt 发表于 2016-10-18 04:55:33 | 显示全部楼层
这个python调用counter 一行就搞定了。
```
import collections
class Solution(object):
    def kthcommon(self, words, k):
        """
        :type wrods: List[str].鐣欏璁哄潧-涓浜-涓夊垎鍦
        :type k: int
        :rtype: str
        """. 1point3acres.com/bbs
        return collections.Counter(words).most_common(2)[1][0]

words = ['cat', 'dog', 'cat']
so = Solution()
a = so.kthcommon(words, 1)
print(a)
```

补充内容 (2016-10-18 04:57):
我傻逼了 要2换成k, 1换成k-1.
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-3 03:57

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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