一亩三分地论坛

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

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

google面试

[复制链接] |试试Instant~ |关注本帖
sumingche 发表于 2014-1-25 14:00:04 | 显示全部楼层 |阅读模式

2014(1-3月) 码农类 硕士 全职@Google - 猎头 - Onsite |Other

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

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

x
早上错过了班车,迟到了半个小时。妈蛋,果然跟google没缘分。
到了之后逛了一圈,不错,啥都有:coffee shop, laundry, kitchen at every floor, breakfast, launch, dinner, game room, music room, library. 应该来个Google Hilton.就齐活了。
一面问了个找字符串查重的问题。然后问了一下如何实现iterator的peek。挺有意思!
二面是一个哥们问如何对一个用户进行好友推荐,这个推荐的人应该和用户有最多的共同好友。是图问题。
三面是写一个meeting schedule, 求最少的房间。
四面问一个word grid.给一个词,返回有多少个path可以组成所给定的词。

面完了滚出,给了一个瓶子,还有五块钱的google store卡。。。
午饭挺好吃的。下次有机会去,一定得好好吃一顿

评分

2

查看全部评分

本帖被以下淘专辑推荐:

iamchrisa 发表于 2014-2-19 06:26:34 | 显示全部楼层
齐活...楼主哪里人?我以前经常用"齐活"这个词,哈哈
回复 支持 反对

使用道具 举报

猫咪老师 发表于 2014-3-2 07:14:18 | 显示全部楼层
多谢楼主分享~~去一次onsite这辈子job hunting就值了~
回复 支持 反对

使用道具 举报

johnnywsd 发表于 2014-4-7 07:25:44 | 显示全部楼层
  1. class Grid(object):

  2.     def __init__(self, grid):
  3.         self._grid = grid
  4.         self._m = len(grid)
  5.         self._n = len(grid[0])

  6.     def _get_children(self, i, j):
  7.         res = {}
  8.         for p in [-1, 0, 1]:
  9.             for q in [-1, 0, 1]:
  10.                 if p == q == 0:
  11.                     continue
  12.                 ii = i + p
  13.                 jj = j + q
  14.                 if 0 <= ii < self._m and 0 <= jj < self._n:
  15.                     res[(ii, jj)] = self._grid[ii][jj]
  16.         return res

  17.     def find_path(self, word):
  18.         self._visited = set()
  19.         res = []
  20.         for i in range(self._m):
  21.             for j in range(self._n):
  22.                 self._results = []
  23.                 self._find_path_aux(0, word, [], i, j)
  24.                 res.extend(self._results[:])
  25.         return res

  26.     def _find_path_aux(self, idx, word, one_result, i, j):
  27.         if idx == len(word) - 1:
  28.             target = word[idx]
  29.             if target == self._grid[i][j] and ((i, j) not in self._visited):
  30.                 self._results.append(one_result + [(i, j)])
  31.         else:
  32.             # 0 <= idx < len(word) - 1
  33.             target = word[idx]
  34.             if target == self._grid[i][j] and ((i, j) not in self._visited):. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  35.                 self._visited.add((i, j))
  36.                 children = self._get_children(i, j)
  37.                 for key in children:. Waral 鍗氬鏈夋洿澶氭枃绔,
  38.                     ii = key[0]
  39.                     jj = key[1]
  40.                     self._find_path_aux(idx + 1, word, one_result + [(i, j)],. 1point3acres.com/bbs
  41.                                         ii, jj).鏈枃鍘熷垱鑷1point3acres璁哄潧
  42.                 self._visited.remove((i, j))
  43.             else:
  44.                 return
复制代码
  1. # -*- coding: utf-8 -*-
  2. import unittest
  3. from solution import Grid


  4. class Test(unittest.TestCase):

  5.     def test1(self):
  6.         word = 'dog'
  7.         grid = ['dogo', 'oodo', 'gogo', 'oooo']
  8.         grid = ['dogo', 'xxxx', 'xxxx', 'xxxx']
  9.         grid = [[y for y in x] for x in grid]
  10.         s = Grid(grid)
  11.         res = s.find_path(word)
  12.         print res.鏈枃鍘熷垱鑷1point3acres璁哄潧

  13.     def test2(self): 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  14.         word = 'dog'
  15.         grid = ['dogo', 'oodo', 'gogo', 'oooo']
  16.         grid = [[y for y in x] for x in grid]
  17.         s = Grid(grid)
  18.         res = s.find_path(word)
    . 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  19.         print res
  20. if __name__ == '__main__':
  21.     unittest.main(verbosity=2). more info on 1point3acres.com
复制代码
回复 支持 反对

使用道具 举报

johnnywsd 发表于 2014-4-7 07:27:03 | 显示全部楼层
  1. class Grid(object):

  2.     def __init__(self, grid):
  3.         self._grid = grid. more info on 1point3acres.com
  4.         self._m = len(grid)
  5.         self._n = len(grid[0])

  6.     def _get_children(self, i, j):
  7.         res = {}. 1point3acres.com/bbs
  8.         for p in [-1, 0, 1]:. Waral 鍗氬鏈夋洿澶氭枃绔,
  9.             for q in [-1, 0, 1]:
  10.                 if p == q == 0:
  11.                     continue
  12.                 ii = i + p
  13.                 jj = j + q
    . 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  14.                 if 0 <= ii < self._m and 0 <= jj < self._n:-google 1point3acres
  15.                     res[(ii, jj)] = self._grid[ii][jj]
  16.         return res

  17.     def find_path(self, word):
    .1point3acres缃
  18.         self._visited = set()
  19.         res = []
  20.         for i in range(self._m):
  21.             for j in range(self._n):
  22.                 self._results = []
  23.                 self._find_path_aux(0, word, [], i, j)
  24.                 res.extend(self._results[:])
  25.         return res. 1point 3acres 璁哄潧

  26.     def _find_path_aux(self, idx, word, one_result, i, j):. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  27.         if idx == len(word) - 1:
  28.             target = word[idx].鏈枃鍘熷垱鑷1point3acres璁哄潧
  29.             if target == self._grid[i][j] and ((i, j) not in self._visited):
  30.                 self._results.append(one_result + [(i, j)])
  31.         else:
  32.             # 0 <= idx < len(word) - 1. 1point 3acres 璁哄潧
  33.             target = word[idx].1point3acres缃
  34.             if target == self._grid[i][j] and ((i, j) not in self._visited):
  35.                 self._visited.add((i, j))
  36.                 children = self._get_children(i, j)
  37.                 for key in children:
  38.                     ii = key[0]
  39.                     jj = key[1]
  40.                     self._find_path_aux(idx + 1, word, one_result + [(i, j)],
  41.                                         ii, jj).鏈枃鍘熷垱鑷1point3acres璁哄潧
  42.                 self._visited.remove((i, j))
  43.             else:
  44.                 return. visit 1point3acres.com for more.
复制代码


  1. # -*- coding: utf-8 -*-
  2. import unittest
  3. from solution import Grid. from: 1point3acres.com/bbs


  4. class Test(unittest.TestCase):

  5.     def test1(self):
  6.         word = 'dog'
  7.         grid = ['dogo', 'oodo', 'gogo', 'oooo']
  8.         grid = ['dogo', 'xxxx', 'xxxx', 'xxxx']
  9.         grid = [[y for y in x] for x in grid]. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  10.         s = Grid(grid)
  11.         res = s.find_path(word)
  12.         print res

  13.     def test2(self):
  14.         word = 'dog'. 1point 3acres 璁哄潧
  15.         grid = ['dogo', 'oodo', 'gogo', 'oooo']
  16.         grid = [[y for y in x] for x in grid]
  17.         s = Grid(grid)
  18.         res = s.find_path(word)
  19.         print res
  20. if __name__ == '__main__':
  21.     unittest.main(verbosity=2)
复制代码


回复 支持 反对

使用道具 举报

shire1989 发表于 2014-5-9 05:58:27 | 显示全部楼层
找字符串查重的问题
什么意思?
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2016-12-11 00:47

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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