一亩三分地论坛

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

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

wayfair面经以及代码整理 大家加油

[复制链接] |试试Instant~ |关注本帖
池大侠 发表于 2016-4-15 03:00:41 | 显示全部楼层 |阅读模式

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

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

x
今天面试 我两道 一道rotate array 一道 find k numbers randomly准备面试把可以收集到的题目全写了一遍
贴个代码大家好好准备
  1. #def maximumArray(nums):. from: 1point3acres.com/bbs
  2. # rotate array-google 1point3acres
  3. # max array
  4. # stack queue
  5. # single number
  6. # k number
  7. # palindrome
  8. # if else count > 5 blue shoes
  9. # reverse string
  10. # remove duplicate
  11. import random. From 1point 3acres bbs
  12. import copy. 1point 3acres 璁哄潧

  13. def moveNegative(nums):
  14.         if not nums:
  15.                 return nums
  16.         neg_values, pos_values = [], []
  17.         for val in nums:
  18.                 if val <= 0:
  19.                         neg_values.append(val). visit 1point3acres.com for more.
  20.                 else:. more info on 1point3acres.com
  21.                         pos_values.append(val)
  22.         neg_values.extend(pos_values)
  23.         return neg_values


  24. nums = [-1, 10, 2, -9, 0, 8]
  25. #print moveNegative(nums)


  26. def moveNegatives2(nums):
  27.         if not nums:
  28.                 return nums
  29.         nums_len = len(nums). 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  30.         min_val = min(nums)
  31.         max_val = max(nums)
  32.         nums = map(lambda x:x - min_val, nums)
  33.         new_max = max_val - min_val + 1. 1point3acres.com/bbs
  34.         count = 0
  35.         # max_val *  (max_val + 1) <= (1 << 31 - 1). visit 1point3acres.com for more.
  36.         for i in range(nums_len):
  37.                 if nums[i] % new_max <= - min_val:
  38.                         nums[count] += (nums[i] % new_max) * new_max
  39.                         count += 1
  40.         for i in range(nums_len):
  41.                 if nums[i] % new_max > -min_val:
  42.                         nums[count] += (nums[i] % new_max) * new_max. 1point 3acres 璁哄潧
  43.                         count += 1. more info on 1point3acres.com
  44.         for i in range(nums_len):
  45.                 nums[i] = nums[i] / new_max + min_val
  46.         return nums

  47. -google 1point3acres
  48. print moveNegatives(nums)
  49. . 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴


  50. def strstr(haystack, needle):
  51.         if not haystack and not needle:
  52.                 return 0
  53.         if haystack == needle or haystack and not needle:
  54.                 return 0
  55.         haystack_len, needle_len = map(len, [haystack, needle])
  56.         for i in range(haystack_len - needle_len + 1):
  57.                 if haystack[i : i + needle_len] == needle:
  58.                         return i
  59.         return -1

  60. def strStr(haystack, needle):
  61.         if haystack == needle or haystack and not needle:. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  62.                 return 0
  63.         dfa, char_hash = buildTable(needle). 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  64.         j = 0
  65.         haystack_len, needle_len = map(len, [haystack, needle])
  66.         for index, char in enumerate(haystack):
  67.                 if char in char_hash:
  68.                         j = dfa[char_hash[char]][j]. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  69.                 if j == needle_len:
  70.                         return index - needle_len + 1. 鍥磋鎴戜滑@1point 3 acres
  71.         return -1

  72. def buildTable(needle):
  73.         char_hash = {}. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  74.         i = 0
  75.         for char in needle:
  76.                 if char not in char_hash:
  77.                         char_hash[char]  = i
  78.                         i += 1
    . 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  79.         needle_len = len(needle)
  80.         dfa = [[0 for _ in range(needle_len)] for _ in range(len(char_hash))]
  81.         dfa[char_hash[needle[0]]][0] = 1
  82.         last = 0
  83.         for j in range(1, needle_len):
  84.                 for i in range(len(char_hash)):
  85.                         last = dfa[char_hash[needle[j]]][last]
  86.                 dfa[char_hash[needle[j]]][j] = j + 1
  87.         return dfa, char_hash

  88. #print strStr("abc", "c")
  89. def rotateArray(nums, k):. more info on 1point3acres.com
  90.         if not nums: 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  91.                 return nums
  92.         nums_len = len(nums)
  93.         k %= nums_len
  94.         nums.reverse()
  95.         low = 0
  96.         high = k - 1. 1point3acres.com/bbs
  97.         while low < high:
  98.                 nums[low], nums[high] = nums[high], nums[low]
  99.                 low += 1 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  100.                 high -= 1
  101.         low = k
  102.         high = nums_len - 1.鐣欏璁哄潧-涓浜-涓夊垎鍦
  103.         while low < high:. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  104.                 nums[low], nums[high] = nums[high], nums[low]. 1point 3acres 璁哄潧
  105.                 low += 1
  106.                 high -= 1.鏈枃鍘熷垱鑷1point3acres璁哄潧
  107.         return nums

  108. nums = [1,2,3,4,5,6,7]
  109. #k = 3
  110. #print rotateArray(nums, 3)
  111. . From 1point 3acres bbs
  112. # k numbers
  113. def getKrandom(nums, k):
  114.         if not nums:
  115.                 return nums
  116.         nums_len = len(nums). 1point3acres.com/bbs
  117.         if nums_len < k:
  118.                 return nums
  119.         res = nums[:k]
  120.         for index in range(k, nums_len):
  121.                 cur_index = random.randint(0, k - 1)
  122.                 res[cur_index] = nums[index]
  123.         return res
  124. #print getKrandom(nums, 3)
  125. def getK(nums, k):
  126.         if not nums:
  127.                 return nums
  128.         nums_len = len(nums)
  129.         if nums_len < k:
  130.                 return nums
  131.         end = nums_len - 1
  132.         while k:
    .1point3acres缃
  133.                 index = random.randint(0, end)
  134.                 nums[index], nums[end] = nums[end], nums[index]-google 1point3acres
  135.                 k -= 1
  136.                 end -= 1. Waral 鍗氬鏈夋洿澶氭枃绔,
  137.         return nums[end + 1:]. from: 1point3acres.com/bbs

  138. #print getK(nums, 3)
  139. class Queue(object):
  140.         def __init__(self):
  141.                 self.queue = []. visit 1point3acres.com for more.
  142.                 self.temp = []
  143. .鐣欏璁哄潧-涓浜-涓夊垎鍦
  144.         def push(self, val):
  145.                 self.temp.append(val)

  146.         def pop(self):
  147.                 if not self.isEmpty():. 鍥磋鎴戜滑@1point 3 acres
  148.                         if self.queue:
  149.                                 res = self.queue.pop()
  150.                                 if not self.queue:-google 1point3acres
  151.                                         while self.temp:. visit 1point3acres.com for more.
  152.                                                 self.queue.append(self.temp.pop())
  153.                                 return res
  154.                         else:
  155.                                 while self.temp:. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  156.                                         self.queue.append(self.temp.pop())
  157.                                 return self.queue.pop()
  158.                 return None
  159.         def isEmpty(self):.鏈枃鍘熷垱鑷1point3acres璁哄潧
  160.                 return not self.queue and not self.temp
  161. queue = Queue()-google 1point3acres
  162. queue.push(1)
  163. queue.push(2). more info on 1point3acres.com

  164. if not queue.isEmpty():
  165.         print queue.pop()
  166. queue.push(3)
  167. print queue.pop()
  168. print queue.pop()
  169. print queue.pop(). 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  170. #while not queue.isEmpty:

  171. def maxArray(nums):
  172.         if not nums:. visit 1point3acres.com for more.
  173.                 return nums
  174.         max_val = nums[0]
  175.         cur_sum = 0. Waral 鍗氬鏈夋洿澶氭枃绔,
  176.         temp = []. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  177.         res = [nums[0]]
  178.         nums_len = len(nums)
  179.         for i in range(nums_len):
  180.                 if cur_sum < 0:
  181.                         cur_sum = 0
  182.                         temp = []. 1point3acres.com/bbs
  183.                 cur_sum += nums[i]
  184.                 temp.append(nums[i])
  185.                 print cur_sum, max_val, temp, res
  186.                 if cur_sum > max_val: 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  187.                         max_val = cur_sum. 1point3acres.com/bbs
  188.                         res = temp[:nums_len]. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  189.         #print "start", start
  190.         #print end#nums[start:end + 1]
  191.         return res, max_val
  192. nums = [-2,1,-3,4,-1,2,1,-5,-4]. Waral 鍗氬鏈夋洿澶氭枃绔,

  193. #print maxArray(nums)
  194. def getPalindrome(string):. Waral 鍗氬鏈夋洿澶氭枃绔,
  195.         if not string:
  196.                 return string
  197.         char_hash = {}.1point3acres缃
  198.        
  199.         for char in string:
  200.                 if char not in char_hash:. more info on 1point3acres.com
  201.                         char_hash[char] = 1
  202.                 else:. 鍥磋鎴戜滑@1point 3 acres
  203.                         char_hash[char] += 1
  204.         has_odd = False
  205.         odd_char = None. 鍥磋鎴戜滑@1point 3 acres
  206.         for char in char_hash:
  207.                 if char_hash[char] % 2:
  208.                         if not has_odd:
  209.                                 has_odd = True
  210.                                 odd_char = char
  211.                         else:
  212.                                 return False
  213.         res = []
  214.         if has_odd:. From 1point 3acres bbs
  215.                 while char_hash[odd_char]:. From 1point 3acres bbs
  216.                         res.append(odd_char)
  217.                         char_hash[odd_char] -= 1
  218.         for char in char_hash:
  219.                 while char_hash[char]:
  220.                         res.append(char)
  221.                         res.insert(0, char)
  222.                         char_hash[char] -= 2.鏈枃鍘熷垱鑷1point3acres璁哄潧
  223.         return "".join(res)
  224. 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  225. #string = "s"
  226. #print getPalindrome(string)
复制代码

评分

3

查看全部评分

freemeteor92 发表于 2016-4-16 04:27:40 | 显示全部楼层
你好,请问你做的OA还是地里说的那道求二维STRING的Combination的那个题吗?还是碰到什么新题了?
回复 支持 反对

使用道具 举报

SeanTy 发表于 2016-4-16 23:48:39 | 显示全部楼层
学长你好~我是厦门大学大四的学生,被tufts的ee录取了,2016fall,方便私下联系方式,交流交流吗?
回复 支持 反对

使用道具 举报

xiayuan0623 发表于 2016-4-22 01:50:02 | 显示全部楼层
楼主好,请问楼主有消息了吗,我也是4月10几号面的,还没有消息
回复 支持 反对

使用道具 举报

 楼主| 池大侠 发表于 2016-4-22 02:21:41 | 显示全部楼层
xiayuan0623 发表于 2016-4-21 16:50
楼主好,请问楼主有消息了吗,我也是4月10几号面的,还没有消息

拿到offer了。. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
面完第二天就给offer了。。
回复 支持 反对

使用道具 举报

lillian0 发表于 2016-4-22 02:47:45 | 显示全部楼层
wayfair的面试流程是怎么样的啊?
回复 支持 反对

使用道具 举报

xiayuan0623 发表于 2016-4-22 04:49:59 | 显示全部楼层
池大侠 发表于 2016-4-21 13:21
拿到offer了。
面完第二天就给offer了。。
. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
恭喜楼主,我还没有消息,也是醉了,已经11天了,并不敢催。。。
回复 支持 反对

使用道具 举报

EileneLiu 发表于 2016-4-22 05:44:41 来自手机 | 显示全部楼层
xiayuan0623 发表于 2016-4-22 01:50
楼主好,请问楼主有消息了吗,我也是4月10几号面的,还没有消息

我是13号面试的 现在还没结果 . 你的hr是谁呀
回复 支持 反对

使用道具 举报

 楼主| 池大侠 发表于 2016-4-22 07:44:33 | 显示全部楼层
EileneLiu 发表于 2016-4-21 20:44
我是13号面试的 现在还没结果 . 你的hr是谁呀

sal zishu zi shu zi shu.
直接打电话吧。
回复 支持 反对

使用道具 举报

 楼主| 池大侠 发表于 2016-4-22 07:45:08 | 显示全部楼层
xiayuan0623 发表于 2016-4-21 19:49
恭喜楼主,我还没有消息,也是醉了,已经11天了,并不敢催。。。
. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
可以直接打电话。
回复 支持 反对

使用道具 举报

EileneLiu 发表于 2016-4-22 08:32:42 | 显示全部楼层
池大侠 发表于 2016-4-22 07:44
sal zishu zi shu zi shu.
直接打电话吧。

昨天和今天都发邮件了, 我要是打电话, sal会不会烦我
回复 支持 反对

使用道具 举报

lmdolphy 发表于 2016-4-22 08:44:17 | 显示全部楼层
lz是不是之前在trip advisor 实习来着?
回复 支持 反对

使用道具 举报

xiayuan0623 发表于 2016-4-26 04:28:11 | 显示全部楼层
EileneLiu 发表于 2016-4-21 16:44
我是13号面试的 现在还没结果 . 你的hr是谁呀

我是sal , 估计招满了快。。。
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2017-1-19 02:17

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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