May 2009 - May 2017 论坛八周年-你的足迹,我的骄傲


一亩三分地论坛

 找回密码
 获取更多干活,快来注册

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

Uber 电面

[复制链接] |试试Instant~ |关注本帖
lileeyao 发表于 2015-3-21 11:19:37 | 显示全部楼层 |阅读模式

2015(4-6月) 码农类 硕士 全职@uber - 内推 - 技术电面 |Other

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

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

x
刚面完. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴

题目就是计算表达式  1+2*3+4 = 11可以去搜parse mathematical expression,不考虑括号

一开始想先转逆波兰表达式 结果越写越复杂 磕磕绊绊写了50分钟 将近100行代码,最后才搞出来。但时间超太多了
.1point3acres缃
估计跪了

. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷

本帖被以下淘专辑推荐:

  • · uber|主题: 19, 订阅: 16
chuendes 发表于 2015-3-21 12:03:47 | 显示全部楼层
关注一亩三分地公众号:
Warald_一亩三分地
use two arrays to store numbers and signs.
.鏈枃鍘熷垱鑷1point3acres璁哄潧
nums = [1,2,3,4]. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
signs = [+, *, +]

scan signs, when we meet  * or /,  and change * or / into +, corresponding nums changed to  [0, a*b or [0, a/b]. for the example:

nums  = [1,0,6,4]
signs = [+,+,+]

then do (zigzag) sum.
回复 支持 2 反对 0

使用道具 举报

池大侠 发表于 2015-3-21 11:37:17 | 显示全部楼层
关注一亩三分地微博:
Warald
Uber
They schedule an interviewed with me but did not call.... I emailed them but did not see any response.... is there anyone know what should i do......
回复 支持 反对

使用道具 举报

tyr034 发表于 2015-3-21 13:19:35 | 显示全部楼层
chuendes 发表于 2015-3-21 12:03
use two arrays to store numbers and signs.

nums = [1,2,3,4]

学习了...
回复 支持 反对

使用道具 举报

tanis 发表于 2015-3-21 13:40:37 | 显示全部楼层
其实我想说。。这个头像难道不是岚少么。。
回复 支持 反对

使用道具 举报

57656929bb 发表于 2015-3-22 02:36:36 | 显示全部楼层
两个stack一个存运算符一个存运算数,新的运算符进来时看看是不是比栈顶的优先度高,如果不是,就出栈一个运算符两个运算数,计算后新的运算数入栈。
回复 支持 反对

使用道具 举报

xdxiaoxin 发表于 2015-3-22 15:00:01 | 显示全部楼层
57656929bb 发表于 2015-3-22 02:36. 1point3acres.com/bbs
两个stack一个存运算符一个存运算数,新的运算符进来时看看是不是比栈顶的优先度高,如果不是,就出栈一个 ...

说啥呢 大兄弟
回复 支持 反对

使用道具 举报

llxujiji 发表于 2015-3-22 20:40:52 | 显示全部楼层
bless楼主

楼主我想问下投完多久后hr给的回应呢,我找人内推一个多月了也没反应。。有点心急
回复 支持 反对

使用道具 举报

 楼主| lileeyao 发表于 2015-3-23 10:32:53 | 显示全部楼层
llxujiji 发表于 2015-3-22 20:40
bless楼主

楼主我想问下投完多久后hr给的回应呢,我找人内推一个多月了也没反应。。有点心急

自己投的,没几天就联系我了。 我年初找人推过,没用,我觉得有时候还得看recruiter心情。。。
回复 支持 反对

使用道具 举报

llxujiji 发表于 2015-3-23 11:16:14 | 显示全部楼层
。。好的,真是确实这样,我过两天再投一次看看,醉啊

祝你面试顺利啊
回复 支持 反对

使用道具 举报

paradox 发表于 2015-3-23 14:27:07 | 显示全部楼层
随便写了写,没用tree或者stack(not op solution):

e = "1+2*3+4*5-9/3"
. Waral 鍗氬鏈夋洿澶氭枃绔,
def parseNumberAndOperant(e):
    num = []
    op = []
    for char in e:
        if (char.isdigit()):
            num += char
        else:
            op += char. from: 1point3acres.com/bbs
    return op,num


ops,nums = parseNumberAndOperant(e)
#[['+', '*', '+'], ['1', '2', '3', '4']]

#scan all the op, and trying order them in the stack, . 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
#and when ever i order the an op i also order a new stack for the number
while('*' in ops or '/' in ops):
    for opIndex, op in enumerate(ops):. from: 1point3acres.com/bbs
        numLeftIndex = opIndex
        numRightIdex = numLeftIndex + 1
        if(op == '*'):. from: 1point3acres.com/bbs
            nums[numLeftIndex] = int(nums[numLeftIndex]) * int(nums[numRightIdex])
            #remove op, and remove the numbers. 1point3acres.com/bbs
            ops.pop(opIndex)
            nums.pop(numRightIdex)
        elif(op == '/'):
            nums[numLeftIndex] = int(nums[numLeftIndex]) / int(nums[numRightIdex]). visit 1point3acres.com for more.
            #remove op, and remove the numbers. 鍥磋鎴戜滑@1point 3 acres
            ops.pop(opIndex)
            nums.pop(numRightIdex)

print (ops,nums)

while('+' in ops or '-' in ops):
    for opIndex, op in enumerate(ops):
        numLeftIndex = opIndex
        numRightIdex = numLeftIndex + 1
        if(op == '+'):
            nums[numLeftIndex] = int(nums[numLeftIndex]) + int(nums[numRightIdex])
            ops.pop(opIndex)
            nums.pop(numRightIdex)
        elif(op == '-'):
            nums[numLeftIndex] = int(nums[numLeftIndex]) - int(nums[numRightIdex]) 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
            ops.pop(opIndex)
            nums.pop(numRightIdex)


print (ops,nums)
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-5-30 11:52

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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