一亩三分地论坛

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

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

新鲜的Twitter OA实习

[复制链接] |试试Instant~ |关注本帖
如果我是金牛座 发表于 2016-11-13 13:28:55 | 显示全部楼层 |阅读模式

2017(7-9月) 码农类 硕士 实习@Twitter - 网上海投 - 在线笔试 |Otherfresh grad应届毕业生

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

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

x
实习OA,但我感觉实习和Full time的OA其实差不多,之前也是做了好多地里的Full time OA,抽中了原题。但现在找不到那些帖子了。。。
楼主抽到的是两题版本,时间限制是7天。。。

第一题是Timeseries Data Aggregation.. from: 1point3acres.com/bbs
从一个文件中中提取想要的数据。
文件的第一行是time period,
第二行是空行. from: 1point3acres.com/bbs
第三行开始有数据:具体时间,项目,次数

比如:
2015-08, 2016-04

2015-08-15, clicks, 635
2016-03-24, app_installs, 683
2015-04-05, favorites, 763
2016-01-22, favorites, 788
2015-12-26, clicks, 525. 1point3acres.com/bbs
2016-06-03, retweets, 101
2015-12-02, app_installs, 982
2016-09-17, app_installs, 770
2015-11-07, impressions, 245. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
2016-10-16, impressions, 567


Output是找出time period中的所有数据,不要求具体日期,如果时间相同,项目和次数也要整合,上面例子的output就应该是
2016-03, app_installs, 683
2016-01, favorites, 788
2015-12, app_installs, 982, clicks, 525
2015-11, impressions, 245
-google 1point3acres2015-08, clicks, 635

需要注意排序和整合,当然这只是第一个test case,后面的test case有点tricky的地方,就是如果时间和项目都相同的话,那么output的次数应该是它们的合。
比如input:
2015-08, 2016-04
. Waral 鍗氬鏈夋洿澶氭枃绔,. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
2015-08-15, clicks, 635. 1point3acres.com/bbs
2015-08-17, clicks, 177
.鐣欏璁哄潧-涓浜-涓夊垎鍦
. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
那么output就应该是:
2015-08-15, clicks, 812. 1point3acres.com/bbs
. From 1point 3acres bbs
这题不难,就是有点麻烦。。。
. 1point3acres.com/bbs
第二题就是Tweet Recommendation
做了第一道题再做第二题,简直秒,题目有点长,但其实很简单,如果遇到的话用hash table就好啦~

攒个人品准备下周的电面,顺便求大米啊~~~

评分

1

查看全部评分

 楼主| 如果我是金牛座 发表于 2016-11-13 13:30:42 | 显示全部楼层
关注一亩三分地公众号:
Warald_一亩三分地
有点小错误~比如input: 2015-08, 2016-04  2015-08-15, clicks, 635 2015-08-17, clicks, 177   那么output就应该是: 2015-08-15, clicks, 812
回复 支持 反对

使用道具 举报

 楼主| 如果我是金牛座 发表于 2016-11-13 13:34:03 | 显示全部楼层
关注一亩三分地微博:
Warald
额。。第一次发帖,有点不知道怎么发,上文中比如-google 1point3acres
input:
鏉ユ簮涓浜.涓夊垎鍦拌鍧. 2015-08, 2016-04  

2015-08-15, clicks, 635
2015-08-17, clicks, 177
   
那么output就应该是:
2015-08, clicks, 812
回复 支持 反对

使用道具 举报

阿童木 发表于 2016-11-15 01:56:43 | 显示全部楼层
楼主可以发一下代码吗,谢谢!
回复 支持 反对

使用道具 举报

 楼主| 如果我是金牛座 发表于 2016-11-15 04:12:58 | 显示全部楼层
我用python写的,第一题

  1. import sys-google 1point3acres
  2. import collections

  3. class CMP(object):
  4.     def __init__(self, date, catagory, number):
  5.         self.date = date
  6.         self.catagory = catagory.1point3acres缃
  7.         self.number = int(number)

  8.     def __cmp__(self, other):
  9.         return (cmp(self.catagory, other.catagory))

  10. line = sys.stdin.readline(). more info on 1point3acres.com
  11. line = line.split(',')
  12. range1 = line[0]
  13. range1 = range1[:4] + range1[5:]
  14. range1 = int(range1). 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  15. range2 = line[1].strip()
  16. range2 = range2[:4] + range2[5:]. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  17. range2 = int(range2)
  18. . from: 1point3acres.com/bbs
  19. output = []
  20. c = 0
  21. line = sys.stdin.readline()
  22. line = sys.stdin.readline()
  23. while line:
  24.     new_line = line.split(','). 1point 3acres 璁哄潧

  25.     obj = CMP(new_line[0], new_line[1], new_line[2][:-1])
  26.     org_catagory = obj.catagory. 1point3acres.com/bbs
  27.     org_number = obj.number
  28.     org_date = obj.date[:-3]. from: 1point3acres.com/bbs
  29.     new_date = org_date[:4] + org_date[5:]
  30.     new_date = int(new_date). 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  31.     if new_date >= range1 and new_date < range2:
  32.         output.append([org_date])
  33.         output[c].append(obj)
  34.         c += 1.鐣欏璁哄潧-涓浜-涓夊垎鍦

  35.     line = sys.stdin.readline()

  36. d = collections.defaultdict(list)
  37. for k, v in output:.鐣欏璁哄潧-涓浜-涓夊垎鍦
  38.     if k in d:
  39.         flag = 0
  40.         for a in d[k]:
  41.             if a.catagory == v.catagory:
  42.                 a.number += v.number
  43.                 flag = 1.1point3acres缃
  44.         if flag == 0:
  45.             d[k].append(v).鐣欏璁哄潧-涓浜-涓夊垎鍦
  46.     else:
  47.         d[k].append(v). more info on 1point3acres.com

  48. new_d = sorted(d.items()).1point3acres缃
  49. new_d = new_d[::-1]

  50. for k, v in new_d:
  51.     if type(v) is list:
  52.         v.sort()
  53.     else:
  54.         continue
  55. . 1point 3acres 璁哄潧
  56. for k, v in new_d:. visit 1point3acres.com for more.
  57.     sys.stdout.write(k)
  58.     for obj in v:
  59.         sys.stdout.write("," + obj.catagory + ", " + str(obj.number)). from: 1point3acres.com/bbs
  60.     print ""
复制代码
求职神器indeed - 在全球最大的求职网站找找适合你的工作?
回复 支持 反对

使用道具 举报

somesaywithme 发表于 2016-11-22 10:39:07 | 显示全部楼层
我做了好久了,到现在几个礼拜了都没收到后续,问什么会这样呢?
回复 支持 反对

使用道具 举报

zhihaosun 发表于 2016-11-22 10:46:33 | 显示全部楼层
第一道题用TreeMap挺省事的吧
回复 支持 反对

使用道具 举报

 楼主| 如果我是金牛座 发表于 2016-11-22 11:02:17 | 显示全部楼层
zhihaosun 发表于 2016-11-22 10:46
第一道题用TreeMap挺省事的吧

Java的话应该ok,python我不知道怎么用………
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2017-4-25 09:41

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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