求问有什么站立式办公桌推荐?

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
H1B/绿卡遥遥无期
又不想回国
来东南亚最大的互联网集团工作?
码农求职神器Triplebyte:
不用海投
内推多家公司面试
坐标湾区
Games Startup
招聘游戏开发工程师
游戏初创公司招聘工程师、UIUX Designer和游戏策划
查看: 4411|回复: 16
收起左侧

Zenefits 电面

[复制链接] |试试Instant~ |关注本帖
我的人缘0
ManitobaFarmer 发表于 2015-5-1 01:43:29 | 显示全部楼层 |阅读模式
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】

2015(4-6月) 码农类General 硕士 全职@Zenefits - 内推 - 技术电面  | Other | fresh grad应届毕业生

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

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

x
印度人

有点像 reverse polish notation 的变种,计算一个表达式的值的。要求自行设计表达式的数据结构并计算表达式的值。

有几种特殊情况. visit 1point3acres for more.
1. 单输入一个数,比如 [0],是合法,结果为0;
2. 单输入一个运算符也是合法的。 无数字运算的 '+', '-', '/' 结果为 0, 单个 '*' 的结果为 1.
3. 一个运算符可以有好几个计算数字。 比如输入为 ['+', 1, 2, 3],结果为1 + 2 + 3 = 6.. 1point 3acres 论坛
4. 表达式可嵌套,['+', 1, 2, ['*', 1, 3]],这样结果为 1 + 2 + 1 * 2 = 5.

输入一定合法,不用考虑给了两个连续数字却没有运算符的情况,也不用考虑除数为0的情况。

我的做法为新建一个 Expression 类,用于解决输入包含运算符,数字,或者expression三种情况,这样输入就可以为一个Expresssion 的List,再用一个Queue来决定问题。不知道有没有大神有更好的做法。
. 留学申请论坛-一亩三分地


面完收到要求第二轮电面的邮件,有没有大神知道这是什么意思?是面得不太好吗?

评分

参与人数 3大米 +52 收起 理由
laonawuli + 10 感谢分享!
yanyanlr + 40
cuiyang36 + 2 回答的很好!

查看全部评分


上一篇:Amazon一小时四道题的OA有人做过吗 > <
下一篇:facebook加面
我的人缘0
GatherNone 发表于 2015-5-1 07:59:55 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
第四种情况应该是1 + 2 + 1 * 3 = 6 吧
回复 支持 反对

使用道具 举报

我的人缘0
 楼主| ManitobaFarmer 发表于 2015-5-1 10:59:45 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
GatherNone 发表于 2015-5-1 07:59
第四种情况应该是1 + 2 + 1 * 3 = 6 吧

恩,打错了,不好意思。
回复 支持 反对

使用道具 举报

我的人缘0
xieqilu1989 发表于 2015-5-1 11:04:10 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
楼主,这个原始的输入带那个中括号吗?
回复 支持 反对

使用道具 举报

我的人缘0
 楼主| ManitobaFarmer 发表于 2015-5-1 11:10:36 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
xieqilu1989 发表于 2015-5-1 11:04
楼主,这个原始的输入带那个中括号吗?
. 牛人云集,一亩三分地
你愿意写成 String[] 的形式也可以,数据结构随便设计,能计算这么个 expression 的值就行。
回复 支持 反对

使用道具 举报

我的人缘0
xieqilu1989 发表于 2015-5-1 11:23:42 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
ManitobaFarmer 发表于 2015-5-1 11:10. 牛人云集,一亩三分地
你愿意写成 String[] 的形式也可以,数据结构随便设计,能计算这么个 expression 的值就行。

我知道,我的意思是这个expression里面是否用中括号区分了不同的嵌套部分,还是没有中括号只靠字符去区分?
回复 支持 反对

使用道具 举报

我的人缘0
 楼主| ManitobaFarmer 发表于 2015-5-1 11:27:17 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
xieqilu1989 发表于 2015-5-1 11:23
我知道,我的意思是这个expression里面是否用中括号区分了不同的嵌套部分,还是没有中括号只靠字符去区分 ...

自己想办法解决。逻辑上是有个中括号区分的,怎么实现就是面试者要处理的问题。
回复 支持 反对

使用道具 举报

我的人缘0
xieqilu1989 发表于 2015-5-1 12:05:10 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
ManitobaFarmer 发表于 2015-5-1 11:27
自己想办法解决。逻辑上是有个中括号区分的,怎么实现就是面试者要处理的问题。

明白了!多谢啦!
Mobile Apps Category (English)728x90
回复 支持 反对

使用道具 举报

我的人缘0
ShadowChaser 发表于 2015-5-1 12:28:58 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
那么,类似于[+, 1, 2, 3, [*, 2, 3], 6] 这种算合法输入么?
如果不算的话,我觉得逆序处理list比较简单吧
[+, 1, 2, 3, *, 2, 3, 6]  => [+, 1, 2, 3, 36] => 42
回复 支持 反对

使用道具 举报

我的人缘0
 楼主| ManitobaFarmer 发表于 2015-5-1 23:18:01 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
ShadowChaser 发表于 2015-5-1 12:28
那么,类似于[+, 1, 2, 3, [*, 2, 3], 6] 这种算合法输入么?
如果不算的话,我觉得逆序处理list比较简单 ...

算,结果是 1 + 2 + 3 + (2 * 3) + 6 = 18
回复 支持 反对

使用道具 举报

我的人缘0
Xin_walker 发表于 2015-5-2 01:30:06 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
ManitobaFarmer 发表于 2015-5-1 23:18
算,结果是 1 + 2 + 3 + (2 * 3) + 6 = 18
. more info on 1point3acres
所以输入序列本身是有[]的吗?不然输入+, 1, 2, 3, *, 2, 3, 6, 就有[+, 1, 2, 3, [*, 2, 3], 6] 和[+, 1, 2, 3, [*, 2, 3], 6] 两种解释嘞?
回复 支持 反对

使用道具 举报

我的人缘0
 楼主| ManitobaFarmer 发表于 2015-5-2 02:01:54 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
Xin_walker 发表于 2015-5-2 01:30
所以输入序列本身是有[]的吗?不然输入+, 1, 2, 3, *, 2, 3, 6, 就有[+, 1, 2, 3, [*, 2, 3], 6] 和[+, 1 ...

所以你需要自己解决这个问题。
回复 支持 反对

使用道具 举报

我的人缘0
summerjx 发表于 2015-5-2 13:14:10 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
请问一下用queue怎么做呢
回复 支持 反对

使用道具 举报

我的人缘0
hami33 发表于 2015-5-7 15:34:01 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
有人能分享一个code怎么写吗?
回复 支持 反对

使用道具 举报

我的人缘0
johnnywsd 发表于 2015-5-12 12:14:20 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
  1. class Solution:

  2.     def eval(self, expr):
  3.         operator = expr[0]
  4.         expr = expr[1:]
  5.         evaled_expr = []
  6.         for it in expr:
  7.             if isinstance(it, list):
  8.                 evaled = self.eval(it)
  9.                 evaled_expr.append(evaled)
  10.             else:
  11.                 evaled_expr.append(it)
  12.         res = 0
  13.         if operator == '+':
  14.             res = sum(evaled_expr). visit 1point3acres for more.
  15.         elif operator == '*':
  16.             res = 1
  17.             for it in evaled_expr:. 1point3acres
  18.                 res *= it
  19.         elif operator == '-':
  20.             res = evaled_expr[0] if len(evaled_expr) > 0 else 0. visit 1point3acres for more.
  21.             for it in evaled_expr[1:]:
  22.                 res -= it
  23.         elif operator == '/':. 围观我们@1point 3 acres
  24.             res = evaled_expr[0] if len(evaled_expr) > 0 else 0
  25.             for it in evaled_expr[1:]:
  26.                 res /= it
  27.         return res
复制代码
Test Cases:
  1. import unittest
  2. from solution import Solution


  3. class Test(unittest.TestCase):

  4.     def test1(self):
    . Waral 博客有更多文章,
  5.         s = Solution()
  6.         expr = ['+', 1, 2, ['*', 1, 3]]
  7.         res = s.eval(expr)
  8.         self.assertEqual(res, 6)

  9.     def test2(self):
  10.         s = Solution()-google 1point3acres
  11.         expr = ['+', 1, 2, ['*', 2, 3]] 来源一亩.三分地论坛.
  12.         res = s.eval(expr)
  13.         self.assertEqual(res, 9)

  14.     def test3(self):
  15.         s = Solution()
  16.         expr = ['+', ['*'], ['-'], ['/']]
  17.         res = s.eval(expr).1point3acres网
  18.         self.assertEqual(res, 1)

  19.     def test4(self):
  20.         s = Solution()
  21.         expr = ['+', 1, 2, ['*', 2, 3], ['-', 4, 5], ['/', 8, 2]]
  22.         res = s.eval(expr)
  23.         self.assertEqual(res, 12)
  24. . more info on 1point3acres
  25. if __name__ == '__main__':
  26.     unittest.main(verbosity=2)
复制代码
回复 支持 反对

使用道具 举报

我的人缘0
huahuazhu 发表于 2015-5-17 07:21:24 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
没太想明白楼主的做法,我的想法跟johnnywsd 的类似,不过python我不熟,我用java的话就是这样一个class
class Expression{
char operator;
list<double> numbers;
list<Expression> innerExpression;
...
}

但是这样比较麻烦的是需要有一个parser 把类似 [+, 1, 2, 3, [*, 2, 3], 6]  的输入变成一个object

我没想明白怎么用“Expresssion 的List,再用一个Queue来决定问题”,我这种定义class的方法,貌似一个object就足够了
回复 支持 反对

使用道具 举报

我的人缘0
sunnycat 发表于 2015-5-23 12:00:15 | 显示全部楼层
  此人我要顶:
 
0% (暂未有人投票) 【我投】
  此人我要踩:
 
0% (暂未有人投票) 【我投】
谢谢楼主,解法很clean
回复 支持 反对

使用道具 举报

游客
请先登录

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

关闭

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

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

custom counter

GMT+8, 2018-6-18 19:56

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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