传说中的谷歌招聘委员会成员之一,从幕后走出来,教你学系统设计!


一亩三分地论坛

 找回密码
 获取更多干活,快来注册
天天打游戏、照样领工资、还办H1B
这份工作你要不要?
把贵司招聘信息放这里
查看: 2531|回复: 7
收起左侧

新鲜的Twitter OA实习

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

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

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

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

x
实习OA,但我感觉实习和Full time的OA其实差不多,之前也是做了好多地里的Full time OA,抽中了原题。但现在找不到那些帖子了。。。. 1point3acres.com/bbs
楼主抽到的是两题版本,时间限制是7天。。。. 鍥磋鎴戜滑@1point 3 acres

第一题是Timeseries Data Aggregation.
从一个文件中中提取想要的数据。
文件的第一行是time period,
第二行是空行
第三行开始有数据:具体时间,项目,次数
鏉ユ簮涓浜.涓夊垎鍦拌鍧.
比如:
2015-08, 2016-04. 1point3acres.com/bbs

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
2016-06-03, retweets, 101
2015-12-02, app_installs, 982. more info on 1point3acres.com
2016-09-17, app_installs, 770. 鍥磋鎴戜滑@1point 3 acres
2015-11-07, impressions, 245-google 1point3acres
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
2015-08, clicks, 635
. 鍥磋鎴戜滑@1point 3 acres
需要注意排序和整合,当然这只是第一个test case,后面的test case有点tricky的地方,就是如果时间和项目都相同的话,那么output的次数应该是它们的合。
比如input:
.鏈枃鍘熷垱鑷1point3acres璁哄潧2015-08, 2016-04

2015-08-15, clicks, 635
2015-08-17, clicks, 177. from: 1point3acres.com/bbs


那么output就应该是:
2015-08-15, clicks, 812

这题不难,就是有点麻烦。。。

第二题就是Tweet Recommendation
做了第一道题再做第二题,简直秒,题目有点长,但其实很简单,如果遇到的话用hash table就好啦~

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

评分

1

查看全部评分

 楼主| 如果我是金牛座 发表于 2016-11-13 13:30:42 | 显示全部楼层
有点小错误~比如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 | 显示全部楼层
额。。第一次发帖,有点不知道怎么发,上文中比如. from: 1point3acres.com/bbs
input:
2015-08, 2016-04  

2015-08-15, clicks, 635
2015-08-17, clicks, 177
   . more info on 1point3acres.com
那么output就应该是:
2015-08, clicks, 812
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

  1. import sys
  2. import collections

  3. class CMP(object):
  4.     def __init__(self, date, catagory, number):
  5.         self.date = date
    . 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  6.         self.catagory = catagory
  7.         self.number = int(number)

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

  10. line = sys.stdin.readline()
  11. line = line.split(',')
  12. range1 = line[0]
  13. range1 = range1[:4] + range1[5:]
  14. range1 = int(range1)
  15. range2 = line[1].strip(). 鍥磋鎴戜滑@1point 3 acres
  16. range2 = range2[:4] + range2[5:]. 1point3acres.com/bbs
  17. range2 = int(range2)
    . visit 1point3acres.com for more.

  18. output = []
  19. c = 0
  20. line = sys.stdin.readline()
  21. line = sys.stdin.readline()
  22. while line:
  23.     new_line = line.split(',')

  24.     obj = CMP(new_line[0], new_line[1], new_line[2][:-1])
  25.     org_catagory = obj.catagory
  26.     org_number = obj.number
  27.     org_date = obj.date[:-3]
  28.     new_date = org_date[:4] + org_date[5:]
  29.     new_date = int(new_date)
  30.     if new_date >= range1 and new_date < range2:.鐣欏璁哄潧-涓浜-涓夊垎鍦
  31.         output.append([org_date])
  32.         output[c].append(obj)
  33.         c += 1

  34.     line = sys.stdin.readline()

  35. d = collections.defaultdict(list)
  36. for k, v in output:
  37.     if k in d:
  38.         flag = 0.鐣欏璁哄潧-涓浜-涓夊垎鍦
  39.         for a in d[k]:-google 1point3acres
  40.             if a.catagory == v.catagory:
  41.                 a.number += v.number
  42.                 flag = 1
  43.         if flag == 0:
  44.             d[k].append(v)
  45.     else:.鏈枃鍘熷垱鑷1point3acres璁哄潧
  46.         d[k].append(v).1point3acres缃

  47. new_d = sorted(d.items())
  48. new_d = new_d[::-1]
  49. -google 1point3acres
  50. for k, v in new_d:
  51.     if type(v) is list:
  52.         v.sort()
  53.     else:
  54.         continue

  55. for k, v in new_d:
  56.     sys.stdout.write(k)
  57.     for obj in v:
  58.         sys.stdout.write("," + obj.catagory + ", " + str(obj.number))
  59.     print ""
复制代码
回复 支持 反对

使用道具 举报

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我不知道怎么用………
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-9-24 08:02

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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