May 2009 - May 2017 论坛八周年-你的足迹,我的骄傲


一亩三分地论坛

 找回密码
 获取更多干活,快来注册

一亩三分地官方iOS手机应用下载
查看: 2073|回复: 8
收起左侧

Yelp 技术电面

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

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

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

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

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)
#
奉献给大家
. Waral 鍗氬鏈夋洿澶氭枃绔,

评分

1

查看全部评分

edcent 发表于 2016-4-14 01:52:58 | 显示全部楼层
关注一亩三分地公众号:
Warald_一亩三分地
我也碰到过类似的题. 楼主怎么做的?
回复 支持 反对

使用道具 举报

 楼主| zth198814 发表于 2016-4-14 01:58:33 | 显示全部楼层
关注一亩三分地微博:
Warald
edcent 发表于 2016-4-14 01:52
我也碰到过类似的题. 楼主怎么做的?

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

使用道具 举报

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

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

使用道具 举报

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

使用道具 举报

edcent 发表于 2016-4-14 23:40:41 | 显示全部楼层
lzb700m 发表于 2016-4-14 11:49
假如有n个单词,返回第k常见的单词:
1. 扫一遍,统计每个单词的频率。
. visit 1point3acres.com for more.2. 建一个大小为k的minheap,key ...

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

使用道具 举报

lzb700m 发表于 2016-4-15 04:00:42 | 显示全部楼层
edcent 发表于 2016-4-14 23:40. from: 1point3acres.com/bbs
这样 return 回来的是词频吧,不是单词
. Waral 鍗氬鏈夋洿澶氭枃绔,
词频是key,单词是value。需要取什么都可以。.鏈枃鍘熷垱鑷1point3acres璁哄潧
class wordFrequency implements comparable<wordFrequency>{-google 1point3acres
  String word;
  Integer count;.1point3acres缃
  . 1point 3acres 璁哄潧
  @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. 1point 3acres 璁哄潧
class Solution(object):
    def kthcommon(self, words, k):
        """
        :type wrods: List[str]
        :type k: int. 鍥磋鎴戜滑@1point 3 acres
        :rtype: str-google 1point3acres
        """
        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.
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-5-27 03:19

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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